Online Compiler C

#include <stdio.h> void print_1_to_n(unsigned int n) { if (n<1){ return; } print_1_to_n(n-1); printf("%d\n",n); }
这段代码定义了一个递归函数 `print_1_to_n`,它的功能是打印从 1 到 n 的所有整数,每个数字占一行。递归的思路是:先递归调用自身打印 1 到 n-1,然后再打印当前的 n。当 n 小于 1 时,函数直接返回,作为递归的终止条件。

- 注意 `printf` 中的格式说明符 `%d` 用于 `unsigned int` 类型可能不够准确,因为 `%d` 通常用于有符号整数。对于 `unsigned int`,更合适的格式说明符是 `%u`。虽然在某些编译器上可能不会出错,但这是类型不匹配的潜在问题。

- 递归调用 `print_1_to_n(n-1)` 放在 `printf` 之前,这保证了数字按从小到大的顺序输出。如果调换顺序,输出就会变成从 n 到 1 的降序。