求流程图:C++ 用递归法将一个整数N转换成字符串,例如输入483,应输出字符串"483".

2024-12-03 17:36:26
推荐回答(3个)
回答1:

#include

int main()
{
int i = 0 ,j, str[100],number;
scanf("%d",&number);
for(i = 0;number!=0;i++)
{
str[i] = number%10;
number = number/10;
}
j=i - 1;
for(i=j;i>=0;i--)
printf("%d ",str[i]);
return 0;
}

回答2:

void itos(int n)
{
if(n > 0)
{
itos(n/10);
cout << (n%10 + '0');
}
}

回答3:

char* function(int a) ; 是转换函数 当得到整形参数a 会返回一个指向目标字符串的char指针,,
该递归函数的原理是:
1)递归中间步骤:若当前整数参数a 不为个位。。则将a/10代入char* function(int a) ; 并等待调用的函数被跳出后 将当前整数参数a的最低位存入字符串。
2)递归最底层情况:最若该整数为个位 则直接转换为ascii码;并存入字符窜。。递归结束

#include
char mychar[100];//定义一个无限大的字符数组来存放所生成的字符
int i=0; //计数器初始化

char* function(int a)//定义递归函数
{
if (a<10) // base case,最底情况
{
mychar[i++]=char(48+a); //转化为字符串使用ASCⅡ码来转换
return mychar; //函数返回,程序运行到到调用它的语句的下句
}
function(a/10); //递归方式, 将整数的最后一位消去后代入递归函数
mychar[i++]=char(48+a%10); //转化为字符串使用ASCⅡ码来转换
return mychar; //函数返回,程序运行到到调用它的语句的下句
}

void main()
{

char*a;
int num=0;

scanf("%d",&num);
a=function(num);

printf("转化为字符串后:%s",a);
}