这就是代码应该做的事情:
“在T减去的情况下起吊5 5 4 4 3 2 2 1 1 1”
当我运行它时,它只是继续打印' Sum = 5''永远。
代码:
int main(void) {
int sum = 5;
int i;
printf("Lift off in T minus\n");
for (i = 0; i < 5; i=i+i) {
sum = sum - i;
printf("sum = %d\n",sum);
}
printf("Blast-off",sum);
return 0;
答案 0 :(得分:4)
for (i = 0; i < 5; i=i+i) { // use i = i+1
sum = sum - i; //sum-- or sum = sum -1
printf("sum = %d\n",sum);
}
最初i = 0,所以
i=i+i; //will be zero always, no increment.
和
sum = sum -1;
,否则
i = 0 =>sum = sum - i; // = 5 as i=0
i = 1 =>sum = sum - i; // = 4 as i=1
i = 2 =>sum = sum - i; // = 2 as i=2
i = 3 =>sum = sum - i; // = -1 as i=3
答案 1 :(得分:2)
为什么不向后运行循环?
for (i = 5; i > 0; --i) {
printf("i = %d\n",i);
}
这更简单,因此可以减少蠕虫进入的可能性。此外,您的最终printf
如果格式不正确:您错过了sum
的格式说明符。
您的特定问题:将i=i+i
替换为i=i+1
或类似内容。 (我更喜欢++i
)。