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

#include <stdio.h> void print_digits_reverse(int n){ if(n<10){ printf("%d",n); return; }printf("%d",n/10); n=n%10; } int main() { int x; scanf("%d",&x); print_digits_reverse(x); return 0; }
这段代码试图实现一个函数,将整数的各位数字逆序打印出来。但目前逻辑有误,无法正确完成逆序输出。

- 在递归函数中,你打印了 `n/10`,这实际上是去掉最后一位后的数字,而不是最后一位。你应该先打印最后一位数字 `n%10`,然后递归处理剩下的部分 `n/10`。
- 递归调用 `print_digits_reverse` 的语句缺失了。当前代码只打印了一次就结束了,没有继续处理剩余的数字。