Online Compiler C

#include <stdio.h> int main() { int a; int cnt = 0; scanf("%d", &a); while (a > 0) { int no = a % 10; cnt = cnt * 10 + no; a /= 10; } printf("%d", cnt); return 0; }
这段代码的功能是:读取一个整数,然后将其数字顺序反转后输出。例如输入123,输出321。

代码中有一个逻辑错误:反转后的数字可能以0开头,但整数类型会丢失前导零。例如输入120,输出会是21而不是021。

- 检查变量命名:`no` 代表个位数字,但变量名不够直观,建议使用更清晰的名称如 `digit`。
- 思考边界情况:当输入的数字末尾有0时(如120),反转后应该输出021还是21?题目要求是什么?