有人可以解释一下这段代码的逻辑吗?

时间:2019-02-16 18:50:07

标签: c

我通过IDE运行它,其余的值分别为3、2、0、1。 我了解剩下的第一部分,但其余部分则不了解。 另外,循环如何终止? x并非总是大于0,因此会无限期地继续吗?谢谢。

int x = 1023;

while (x > 0)
 {
   printf("%d", x% 10);
   x = x /10;
 }

2 个答案:

答案 0 :(得分:1)

请注意,在C中,当一个除法的两个操作数都为整数类型时,该除法也具有一个整数类型,并且值是除法rounded toward zero的结果。

因此,在第一次迭代中,语句x = x /10;x1023更改为102(不是102.3)。

答案 1 :(得分:0)

由于您要对整数进行除法,因此每次都会得到四舍五入的结果,

所以x的每次迭代都变成

102

10

1

每次打印x即可看到。 所以102模10是2

10 modul0 10为0

1模10为1