请教大家,以下代码段的输出是什么啊? for ( int i=10; i> 1; i ⼀=2 ) { printf("%d ", i++); }

为什么不是11 6 4 3呢?
2024-11-20 11:26:05
推荐回答(2个)
回答1:

10 5 3 2
因为printf("%d ", i++); 是执行完本句之后+1,如果换成++i,结果就是11 6 4 3了
第一次是10,执行成功之后+1,11/2=5 在执行成功后+1 6/2=3 然后执行成功+1 4/2=2 执行成功+1
3/2=1 此时1>1不为真,跳出循环,所以结果是 10 5 3 2

回答2:

5321111````````
i/=2 i=i/2;