用递归法将一个整数n转换成字符串。例如,输入483,应输出的字符串”483”。n的位数不确定,可以是任意整数。
思考如果不用递归调法,能否用其他方法解决此问题
#include<stdio.h>
int main()
{
int n,i=0,b=0,x;
char a[10]={'\0'},t;
scanf("%d",&n);
if(n<0)
{n=-n;printf("-");}
while((x=n/10)!=0)
{n=n%10;a[i]=n+'0'; i++; n=x; b++;}
a[i]=n+'0'; b++;
for(i=0;i<(x=b/2);i++)
{t=a[i];a[i]=a[b-i];a[b-i]=t;}
printf("%s\n",a);
/*for(i=0;i<b;i++)
printf("%c ",a[i]);*/
return 0;
}
#include<stdio.h>
int main()
{
int i=0,b=0;
long long n,x;
char a[100]={'\0'},t;
scanf("%lld",&n);
if(n<0)
{n=-n;printf("-");}
while((x=n/10)!=0)
{n=n%10;a[i]=n+'0'; i++; n=x; b++;}
a[i]=n+'0';
for(i=0;i<(x=b/2);i++)
{t=a[i];a[i]=a[b-i];a[b-i]=t;}
printf("%s\n",a);
/*for(i=0;i<b;i++)
printf("%c ",a[i]);*/
return 0;
}
a字符数组长度设置的大一些
char a[100]={'\0'},t;
a[i]=n+'0'; b++; 这里b++去掉
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y