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

#include <stdio.h> int main() { int n; if (scanf("%d", &n) == 1) { if (n == 0) { print("0\n"); return 0; } int rev = 0; while (n > 0) { int digit = n % 10; rev = rev* 10 + digit; n /= 10; } printf("%d\n",rev); return 0; }
这段代码的功能是读取一个整数,然后输出它的数字反转结果。例如输入123会输出321。

代码中有一个明显的错误:在 `n == 0` 的分支里,你使用了 `print` 而不是 `printf`。`print` 不是C语言的标准函数,编译器会报错。

- 检查 `n == 0` 分支中的输出函数名称,C语言的标准输出函数是 `printf`,不是 `print`。
- 另外,注意当输入负数时,你的循环条件 `while (n > 0)` 会直接跳过,导致没有输出。考虑一下如何处理负数的情况。