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

为什么不是11 6 4 3呢?

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
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-05
5321111````````
i/=2 i=i/2;