C语言程序:用递归法将一个整数n转化成字符串

 我来答
牧羊人518baby
2014-04-03 · 超过18用户采纳过TA的回答
知道答主
回答量:93
采纳率:20%
帮助的人:30.9万
展开全部
将一个整数,转化为与它等价的字符串类型的数据。怎么说,就是一个int n,它表示的数为321,那对应着的字符串表示就是s[0]=3的acs码,s[1]=2的asc码, s[2]=1的asc码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友28b4182
推荐于2017-11-25 · TA获得超过7222个赞
知道大有可为答主
回答量:4847
采纳率:100%
帮助的人:1949万
展开全部
#include<stdio.h>
int deep=0;
char s[100]={0};
void convert(int n)
{
if(n==0)return ;
convert(n/10);
s[deep]=n%10+'0';
deep++;
}
int main()
{

int n;
scanf("%d",&n);
if(n==0)
{
s[0]='0';
puts(s);
return 0;
}
convert(n);
s[deep]=0;
puts(s);
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaixingui2012
2014-04-03 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6777万
展开全部
哪里不明白啊?

if(n==0) 如果输入0,则不用调用函数,直接输出
{
s[0]='0';
puts(s);
return 0;
}

convert(n); 对于非0的进行递归转换

s[deep]=0; 置串结束符\0

void convert(int n)
{
if(n==0)return ; n每次缩小10倍,最终会是0
convert(n/10);
s[deep]=n%10+'0'; 把个位数保存起来,个位以上的数会在上一句的递归调用中转换完成
deep++;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者MFuB0UqT90
2019-09-09 · TA获得超过3990个赞
知道大有可为答主
回答量:3152
采纳率:33%
帮助的人:238万
展开全部
while的条件是不对的
n%10!=0
如果n=10
就退出了!
n的值也没改变
所以是死循环。
而且即使改正之后输出的结果也是与原数相反的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
井钰gQ
2008-05-21 · TA获得超过2480个赞
知道大有可为答主
回答量:1303
采纳率:0%
帮助的人:1516万
展开全部
写了一下,看基本符合你要求了,不过还有些可以改的

下面是程序代码:

#include<stdio.h>
int gnn(int e)
{
int j;
int last=1;
for(j=0;j<e;j++)
{
last=10*last;
}
return last;
}
void fun(long int n,int N)
{
int next;
if(N<1)
{
printf("\"");
return;
}

else
{
next=n/gnn(N-1);
printf("%d",next);
fun(n%gnn(N-1),N-1);
}
}
void main()
{
long int n;
printf("请输入所要转换的数字:");
scanf("%d",&n);
int N=1;
long int k=n/10;
for(int i=0;k!=0;i++)
{
k=k/10;
N++;
}
printf("转换后的输出为: ");
printf("\"");
fun(n,N);
printf("\n");
//getch();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式