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

#include <stdio.h> void print_digits_reverse(int n) { if (n <=9) { printf ("%d ",n); return;} print_digits_reverse(n/10); printf ("%d ",n%10); return; } int main() { sum_to_n(5); printf("%d", sum_to_n(5)); return 0; }
这段代码定义了一个函数 `print_digits_reverse`,它用递归方式打印一个整数的各位数字,但顺序是反的(先打印最高位,再打印低位)。然而 `main` 函数中调用了 `sum_to_n`,这个函数并没有在代码中定义,所以程序会编译失败。

- 你需要在 `main` 中调用已经定义的函数 `print_digits_reverse`,而不是未定义的 `sum_to_n`。
- 注意 `print_digits_reverse` 的递归逻辑:它先递归调用 `print_digits_reverse(n/10)`,然后才打印 `n%10`,这会导致数字从高位到低位依次输出,而不是真正的“逆序”。思考一下,如果希望先打印低位(个位),递归调用的顺序应该怎样调整?