#include<stdio.h>
void tranvers(int n)
{
if (n / 10 != 0) //递归结束条件
tranvers(n / 10); //递归关系式,不满足条件则停止
注意, 递归调用包含了一个无限循环,不执行到结束条件是不会行进行 下一步的
printf("%c", n % 10 + '0');
}
int main()
{
int n;
printf("please input an integral number:\0");
scanf_s("%d", &n);
printf("the string is: ");
if (n < 0)
{
printf("-");
n = -1 * n;
}
tranvers(n);
return 0;
}
字符串的输出没有加权的概念,要让位数最大的数字最先输出。因此通过拆数法(整除10)将最高位百位传递给最后一次调用,通过整除判断是否结束,然后从最后开始不断输出字符。要注意此前的调用中实参还不是个位数,因此要通过取余的方式来输出