写一个递归函数,输入一个非负整数,按照顺序输出它的每一位的值,用c语言。
时间: 2024-12-13 16:19:22 浏览: 20
在C语言中,你可以使用递归函数来实现这个功能。下面是一个简单的示例,它定义了一个名为`print_digits`的函数,用于打印给定非负整数的每一位:
```c
#include <stdio.h>
// 递归函数,接收整数n和一位数组作为参数
void print_digits(int n, int* digits) {
// 如果数字n还有每一位,则将其输出并递归处理下一位
if (n > 0) {
printf("%d", digits[n / 10]); // 输出当前位的数值
print_digits(n % 10, digits); // 调用自身处理下一位
}
}
int main() {
// 输入一个非负整数
int num;
printf("请输入一个非负整数: ");
scanf("%d", &num);
// 初始化一个临时数组存储每一位
int digits[10];
while (num > 0) {
digits[num % 10] = num % 10; // 从右向左存储每一位
num /= 10; // 移除最低位
}
// 反转数组,因为递归是从高位开始的
for (int i = 0, j = 9; i < j; i++, j--) {
int temp = digits[i];
digits[i] = digits[j];
digits[j] = temp;
}
// 开始打印数字
print_digits(*digits, digits);
return 0;
}
```
当你运行此程序时,它会提示用户输入一个非负整数,然后按照顺序依次输出每位的值。
阅读全文