Online Compiler C

#include <stdio.h> void print_digits_reverse(int n){ if (n < 10) { printf ("%d",n); } printf ("%d ",n % 10); print_digits_reverse(n / 10); } int main() { print_digits_reverse(25); return 0; }
这段代码试图递归地逆序打印一个整数的各位数字。目前存在逻辑错误,导致输出结果不符合预期。

- 递归函数中缺少终止条件,导致无限递归。当 `n < 10` 时,虽然打印了数字,但函数没有返回,会继续执行后面的语句并再次调用自身。
- 递归调用的顺序和打印语句的位置需要调整。逆序打印应该先递归处理剩余部分,再打印当前位,否则会先打印低位再打印高位。