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

为什么不是11 6 4 3呢?
2024年11月20日 11:26
有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;