在线编译器 C

#include <stdio.h> void print_sequence(int n){ if(n==1){ printf("%d ",n); return; } for(int i=0;i<n;i++){ printf("%d ",n); }print_sequence(n-1); } int main(){ int a,num=0; scanf("%d",&a); print_sequence(a); printf("%d",num); return 0; }
这段代码定义了一个递归函数 `print_sequence`,它接收一个整数 `n`,然后打印 `n` 次数字 `n`,再递归调用自身处理 `n-1`。主函数中读取一个整数 `a`,调用 `print_sequence(a)` 打印序列,最后打印变量 `num`(始终为0)。

- 注意 `print_sequence` 函数中,当 `n` 大于1时,先打印 `n` 个 `n`,再递归调用 `n-1`。这样会输出类似 `3 3 3 2 2 1` 的序列(如果输入3)。但递归的终止条件是 `n==1`,此时只打印一个1并返回,不再继续递归。

- 主函数最后打印的 `num` 始终是0,因为代码中没有修改 `num` 的地方。你可能想用 `num` 来统计或累加某些值,但当前没有实现。