Online Compiler C

#include <stdio.h> void print_sequence(int n) { int i = 1; if (n == 0) { printf(" "); return; } if (i > n) { i = 1; }else{ print_sequence(n-1); } } int main() { print_sequence(2); return 0; }
这段代码定义了一个递归函数 `print_sequence`,意图是打印一个序列,但目前它并没有输出任何数字,只是打印了一个空格(当 n 为 0 时)或递归调用自身,但没有实际打印数字的逻辑。

- 你的递归函数在每次调用时都重新将 `i` 初始化为 1,但 `i` 并没有被用来控制输出或作为参数传递,所以它实际上没有发挥作用。你需要思考如何让递归在每次调用时输出当前层的 `n` 值,或者利用一个参数来记录要打印的数字。
- 当前代码中,当 `n` 不为 0 时,它直接递归调用 `print_sequence(n-1)`,但没有在递归之前或之后打印任何内容。递归通常会在调用前后安排输出,例如先打印当前值再递归,或者先递归再打印,从而产生不同的序列顺序。