它应该返回“d”,因为它是一个计数器。但是它没有声明。我在这个问题上很纠结。当我在代码前声明“d”时,它没有意义。
我有这样的代码:
int collatz(const int number){
for(int d = 0; number > 1; d++){
int number;
if(number % 2 == 0){
number = number / 2;
}else{
number = number * 3 + 1;
}
}
return d;
}
1条答案
按热度按时间drkbr07n1#
d
在for
循环内声明,并受其作用域限制。请将声明移出循环。for
循环阴影参数number
范围内的int number
。请将参数用作变量。while
循环看起来更可读: