私はそれが生成すると予想しました:
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より小さいため、ループは終了する必要があります。