C语言程序问题疑问解答

img


这个程序中为什么i的值会有3呢,不是做整除的时候,会直接忽略小数点后面的数吗,应该直接等于2吧

i++了,输出之后再加1,所以第二次进去变成6/2了。

你不是i++了吗

供参考:
i=10 循环开始:
i > 1
printf("i=%d\n", i); i=10
printf("%d\n", i++); 10 i++ = 11
i/= 2 11 /=2 i=5

i > 1
printf("i=%d\n", i); i=5
printf("%d\n", i++); 5 i++ = 6
i/= 2 6 /=2 i=3

i>1
printf("i=%d\n", i); i=3
printf("%d\n", i++); 3 i++ = 4
i /= 2 4/=2 i=2

i>1
printf("i=%d\n", i); i=2
printf("%d\n", i++); 2 i++ = 3
i /= 2 3/=2 i=1

i>1 条件不满足,退出循环