任务描述
本关任务:编写一个递归函数,并编写主程序,使其能正序输出一个多位整数的各位数字。
测试输入:20210906
预期输出:2 0 2 1 0 9 0 6
第一种解法:输入作为数字
#include<stdio.h>
//递归函数,正序输出数值的各位数,每输出一个数字空一格
void printDigit(int data) {
if(data==0) {
return;
} else {
printDigit(data/10);
printf("%d ",data%10);
}
}
int main(void) {
int n;
scanf("%d",&n);
printDigit(n);
return 0;
}
运行结果如下:
第二种解法:输入作为字符串
#include<stdio.h>
void fun(char* ch) {
static int i=0;
if(ch[i]!='\0') {
if(ch[i+1]=='\0') {
printf("%c",ch[i]);
} else {
printf("%c ",ch[i]);
i++;
fun(ch);
}
}
}
int main(void) {
char ch[100];
gets(ch);
fun(ch);
return 0;
}