Онлайн компилятор C

#include <stdio.h> int main() { int N; scanf("%d", &N); do { printf("%d",N%10); N/=10; } while(N>10); return 0; }
这段代码的作用是读取一个整数,然后从个位开始逐位输出它的数字。但循环条件 `N>10` 会导致问题:当 N 小于等于 10 时循环提前结束,无法输出所有位数。

- 循环条件 `N>10` 会漏掉最后一位数字。例如输入 123,循环输出 3 和 2 后 N 变为 1,此时 N 不大于 10,循环结束,不会输出 1。
- 考虑循环应该持续到 N 变为 0 为止,这样能确保所有位都被处理。