以下代码段的输出是什么?
for ( int i=10; i> 1; i /=2 ) {
printf("%d ", i++);
}
答案是10 5 3 2
为什么不是11 5 3 2 1?
以下代码段的输出是什么?
for ( int i=10; i> 1; i /=2 ) {
printf("%d ", i++);
}
答案是10 5 3 2
为什么不是11 5 3 2 1?
参考GPT和自己的思路:
这是因为在循环中,每次先输出 i,然后再对 i 进行自增操作。当 i=10 时,先输出 10,然后再 i 自增为 11。在下一次循环时,i 变为 5,然后又自增为 6,因此输出的第一个数字为 10。接下来,i 变为 3,然后自增为 4,所以输出的第二个数字为 5。以此类推,输出的数字分别为 10、5、3 和 2。因此,输出不包括 1。