在线编译器 C

#include <stdio.h> int main() { int n; scanf("%d", &n); while (n >= 0) { printf("%d", n % 10); n = n / 10; } return 0; }
这段代码试图将输入的整数按位逆序输出。它从最低位开始,依次取出每一位数字并打印。

- 当输入为0时,循环条件 `n >= 0` 会进入循环,打印出0,然后 `n = 0 / 10` 得到0,循环继续,导致无限打印0。你需要考虑如何正确处理输入为0的情况。
- 循环条件 `n >= 0` 对于正数来说,当n变为0后还会继续执行一次,导致多打印一个0。例如输入123,会输出3210而不是321。思考一下循环应该在什么时候结束。