【发布时间】:2015-03-04 02:48:00
【问题描述】:
我预计它会产生:
10 5 3 2 1
但它会打印
10 5 3 2 1 1 1 1 1 1 1 1 1...
为什么?
#include <stdio.h>
int main(void)
{
int i;
for(i = 10; i >= 1; i /= 2)
printf("%d ", i++);
return 0;
}
打印 2,然后加 1 为 3,除以 2 为 1。由于 1 等于 1,打印 1,然后加 1 为 2,除以 2 为 0。因为 0 小于大于 1,循环应该结束。
【问题讨论】:
-
2 除以 2 是 1,而不是 0。
-
尝试调试程序。
标签: c loops for-loop indefinite