int main(){
void aaa(int);
int n;
scanf("%d",&n);//输入正整数n
aaa(n);
}
void aaa(int n){
int m;
m=n%10;
n=n/10;
/* printf("%c",m+48);
if(n) 输入1234,输出4321
aaa(n);
*/
if(n) aaa(n);
printf("%c",m+48);//输入1234,输出1234
}
此函数为不带返回值的递归函数
原样输出:用n/10判断是否为0,以此条件决定是否进行递归调用,n不为0说明还没到最后一位,进行递归调用n再次除以10,直到n等于0不再进行递归调用,打印余数m(1)并返回上一级递归调用再次打印余数m(2),直到退出函数;
倒序输出:先打印余数m(4)然后判断n/10是否为0,若不为0则继续调用递归函数,直到n等于0将全部数字打印完毕,这个递归函数没有返回上一级的步骤;
递归函数必须要有终止条件
这篇博客介绍了一个不带返回值的递归函数,用于将整数n转换成字符串。通过判断n是否为0作为递归终止条件,原样输出时,当n不为0则递归调用并打印余数,直至n为0;倒序输出则先打印余数,再进行递归,直至n等于0完成所有数字的打印。

2万+

被折叠的 条评论
为什么被折叠?



