Online Compiler 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; }
这段代码的作用是读取一个整数,然后不断去掉它的个位数,直到只剩下最高位,最后输出这个最高位。但这里有一个问题:变量 `b` 只在循环内部被赋值,如果输入的数字只有一位(比如 5),循环不会执行,那么 `b` 就没有被初始化,输出会是一个随机值。

- 考虑一下,当输入的数字只有一位时,循环条件 `a / 10 > 0` 是否成立?如果不成立,`b` 的值是什么?
- 可以思考如何让程序在输入只有一位数时也能正确输出这个数字本身。