我正在编写一个试图获得根的平方的函数。 我想通过一个例子来说它更容易:
我想给这个函数一个数字,比如1024,函数应该告诉我12.所以总是在这里寻找x:1024 = 2 ^ x。 如果我给函数255,它应该返回7.
现在我猜我的数学非常好,但我得到一个错误,说我没有在第6行使用变量。你能看看吗?
int log_base2(int num)
{
int x = 2;
int count = 0;
for(; x <= num; x * 2 )
{
count++;
}
return count;
}
错误在第6行(for(....))
答案 0 :(得分:6)
for(; x <= num; x * 2 )
此处x * 2
计算其值,然后将结果抛出。你想要的可能是:
for(; x <= num; x *= 2 )
错误消息可能是因为编译器优化了变量x
,因为它无用。
答案 1 :(得分:4)
您无法在任何地方修改x
。如果您希望x
在下一次迭代中成为2 * x
,则必须更改此
for(; x <= num; x * 2 )
到
for(; x <= num; x = 2 * x )