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

#include <stdio.h> int main() { int a, b; scanf("%d", &a); while (a / 10 > 0) { b = a % 10; a /= 10;printf("%d\n", b); } return 0; }
这段代码的功能是:从键盘输入一个整数,然后从个位开始逐位输出这个数的每一位数字,直到输出到最高位为止。例如输入123,会输出3、2、1。

代码中存在一个逻辑问题:当输入的数字只有一位时(比如5),while循环条件 `a / 10 > 0` 不成立,循环体不会执行,因此不会输出任何数字。但通常我们希望至少输出这一位数字。

- 提示1:思考一下,当a是一位数时,a/10的结果是多少?这个结果是否满足循环条件?如果不满足,那这一位数字该如何输出?
- 提示2:可以考虑在循环结束后,再输出一次a的当前值,这样就能处理一位数的情况。但要注意,循环中已经改变了a的值,需要确保最后输出的确实是最高位。