天秤座男和水瓶座女:C语言题目:使用递归法将整数转换成字符串。

来源:百度文库 编辑:高考问答 时间:2024/04/28 00:56:47
题目:使用递归法将整数转换成字符串。例如输入246时输出字符串为“246”,n可以是任意数。

以上是题目,请答题的时候,加备注,算法。如果有好方法,我会提高悬赏!以谢答题者。

可以这样用ascii码来转换
ascii码从48~58分别是0,1,2...9

int a=3;
char b;
b=char(a+48);
然后b就是字符'3'了
#include<stdio.h>
char mychar[100];//定义一个无限大的字符数组来存放所生成的字符 不过最好使用c的动态内存分配
int i=0;

char* function(int a)
{
if (a<10) {
mychar[i++]=char(48+a);
return mychar;
}
function(a/10);
mychar[i++]=char(48+a%10);//转化为字符串使用ascii码来转换
return mychar;
}

void main()
{

char*a;
int num=0;

scanf("%d",&num);

a=function(num);

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

#include<stdio.h>
f(int n)
{
if (n/10==0) return ;//最高位返回
else f(n/10);//去掉个位,进入下级递归
printf("%d",n%10)//打印个位

}
main()
{
int n;
scanf("%d",&n);
f(n);
}

#include<stdio.h>
char a[100];
int i=0;
f(int n)
{
if(n/10)
{
a[i++]=n%10+'0';//把数字转成字符.
n=n/10;
f(n);
}
else
{
a[i++]=n;
return;
}

}
main()
{
int n;
scanf("%d",&n);
f(n);
a[i]='\0';
printf("%s\n",a);
}

没有调试,算法就是这样的.