⼀⼀用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串"483"。n的位数不确定

这个哪里错了这个哪里错了
2025-02-01 07:56:55
推荐回答(3个)
回答1:

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);
}

回答2:

#include

int a[100];
int k=0;

void f(int x)
{
int i;
a[k]=x%10;
if((i=x/10)!=0)
{
k++;
f(i);
}
}

void main()
{
int l;
scanf("%d",&l);
f(l);
int j;
for(j=k;j>=0;j--)
putchar(a[j]+'0');
}

回答3:

ASCLL码