2 a1163639207 a1163639207 于 2014.12.09 18:32 提问

输入1234,输出3334,不对

/*用递归法将一个整数n转换为相应的字符串,例如,输入483,
输出的是字符串"483",n的位数不确定,可以是任意的正整数。*/
#include
#include
char c[1000];
void int_to_string(int n,int w)
{int i=2,j=w-2,m=10;
c[w]='\0';
c[w-1]=n%10+48;
for(;i<=w;i++)
{c[j--]=(n%10*m-n%m)/m+48;
m=m*10;
}
}

int main()
{int n,w=1,k;
printf("请输入整数n\n");
scanf("%d",&n);
k=n;
if(n>9||n<-9)
{w=0;
while(n!=0)
{n=n/10;
w++;
}
}
int_to_string(k,w);
puts(c);
return 0;
}

5个回答

ypz_ghost
ypz_ghost   2014.12.09 19:16
已采纳

你的逻辑有问题,可以调试下代码。
int_to_string()函数不正确;
可以改成:
int i = 1, j = w - 1, m = 10;
c[w] = '\0';
for (; i <= w; i++) {
c[j--] = (char) (n % m / (m / 10) + 48);
m = m * 10;
}

a1163639207
a1163639207 谢啦
3 年多之前 回复
ypz_ghost
ypz_ghost 回复a1163639207: 不加没问题
3 年多之前 回复
a1163639207
a1163639207 嗯嗯,那请问 c[j--] = (char) (n % m / (m / 10) + 48); 中的(char)可以不加么
3 年多之前 回复
eagleyan
eagleyan   Rxr 2014.12.10 03:50

你们是写作业么,一堆同学上来问相同的问题

http://ask.csdn.net/questions/157208

caozhy
caozhy 其实蛮悲哀的。为什么学生都那么差,因为当老师的就很差,天朝的高校,这种垃圾是代代相传。
3 年多之前 回复
eagleyan
eagleyan   Rxr 2014.12.10 03:53

问题当然是这句

c[j--]=(n%10*m-n%m)/m+48; //看看同学的就明白了,:D

eagleyan
eagleyan   Rxr 2014.12.10 03:56

当然我明白这是作业,但是函数改成
sprintf(c, "%d", n); 最简单直观

caozhy
caozhy   Ds   Rxr 2014.12.10 04:11

这出题的老师也真够混账的。拿着学生交的那么多学费。连个题都不好好出。随便从网上找个现成的题目,连用例的数字都懒得换下就胡乱作为作业布置给学生。

就这种拿人钱财不干人事的狗屁老师,又能教出些什么德性的学生就可想而知了。

http://wenku.baidu.com/link?url=_OpuT11TZHs14CLqHysHsLaXTBmCYP8AH4l8lcYj3HHLj9G01-H9T_Q8zOY59i3WRjck8f5wgPbDTU6DTsIBuNP0KCpMfggkvGRC7MXFisS

http://www.baidu.com/link?url=jAI0p5yiFcwaZrmOqUelSVBpJc5tPdxhqezyJo-pStikq7NY2RGUpFKgc6cU5zyuEDvkrPiJXPfv_MOOdomz2q

不敢发3个链接,那样csdn会给封的。但是这东西网上可以找出千千万。

a1163639207
a1163639207 呃·····俺很自觉的,我也知道,我这不是递归方法···
3 年多之前 回复
eagleyan
eagleyan 你不用睡觉的么,哈哈
3 年多之前 回复
caozhy
caozhy http://bbs.bccn.net/thread-86715-1-1.html
3 年多之前 回复
caozhy
caozhy http://www.baidu.com/link?url=dpTZpyiqkVcZuziciQqI7SrDiVi7TKM1egCdvniZhaVxzwaK0SOybzP6GASSRBFlagk2AoOHH0CK0-0MFYGJIq
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!