| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 399 人关注过本帖
标题:[求助]为什么不对,错在什么地方???????????
只看楼主 加入收藏
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
结帖率:100%
收藏
 问题点数:0 回复次数:4 
[求助]为什么不对,错在什么地方???????????

题目要求是将一个整数N转换成字符串,例如,输入483..应该输出"483", N的位数不确定,可以是任意位数的整数....仅希望大家指出我这个程序中的错误...不需要其它的实现方法....谢谢...程序中的注释是我的思路

void fun(long a , char *p) /*将整数转换成字符串的函数,转换后反序存入字符数组p*/
{
if(a<10) /*判断a是否为一位数,要是直接送到*p中*/
*p=a+'0'; /*把数字转换成字符*/
else /*不是一位数的情况*/
{
*(p++)=a%10+'0'; /*把a个位数字转换成字符存入*p,并使p指向字符数组下一个*/
fun(a/10,p); /*递归调用,a/10就可以把刚才已经存过的个位去掉*/
}
*p='\0'; /*给字符数组最后加上一个结束标志*/
}

void main()
{long a;
char p[10],temp;
int i;
scanf("%ld",&a); /*输入整数*/
fun(a,p); /*函数调用*/
for(i=0;i<=strlen(p)/2;i++) /*由于函数是反序存储,这里进行倒序*/
{temp=p[i];
p[i]=p[strlen(p)-i];
p[strlen(p)-i]=temp;
}
puts(p); /*输出转换过的字符数组*/
getch();
}

搜索更多相关主题的帖子: 字符串 color 
2006-11-11 22:14
rabbit5455
Rank: 2
等 级:论坛游民
帖 子:123
专家分:25
注 册:2004-4-14
收藏
得分:0 
我看了你的程序,发现了你的错误,如下:

1〉 *p='\0'; /*给字符数组最后加上一个结束标志*/
这句应该放在 if 条件后面,你想想是不是 ?

2〉 for(i=0;i<=strlen(p)/2;i++) /*由于函数是反序存储,这里进行倒序*/
{temp=p[i];
p[i]=p[strlen(p)-i];
p[strlen(p)-i]=temp;
}
这个算法写错了,不信的话你在 for 前面加一个puts看看(先把 1 错误改正后)

Member Of Qingfeng Studio 王旭华[http://][http://hi.baidu.com/rabbit5455]
2006-11-11 23:16
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 
谢谢楼上的....经过更改...程序如下
void fun(long a , char p[])
{
if(a<10)
{*p=a+'0';
*++p='\0';
}
else
{
*(p++)=a%10+'0';
fun(a/10,p);
}

}

void main()
{long a;
char p[10],temp;
int i;
scanf("%ld",&a);
fun(a,p);
for(i=0;i<=strlen(p)/2-1;i++)
{temp=p[i];
p[i]=p[strlen(p)-i-1];
p[strlen(p)-i-1]=temp;
}
puts(p);
getch();
}

[此贴子已经被作者于2006-11-12 0:01:16编辑过]


这个社会太复杂。。。
2006-11-11 23:28
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 
终于想通了为什么*++p='\0';不能放在函数最后的那个位置了....因为递归每次都会执行...这样在倒数第二次递归的时候就给*p后面加上了个\0...这样在输出在时候遇到这个\0就会停止...尽管后面还有字符....

呵呵....谢谢二楼....

那个数组字符交换错误由于大意造成....发现了

[此贴子已经被作者于2006-11-11 23:38:51编辑过]


这个社会太复杂。。。
2006-11-11 23:35
rabbit5455
Rank: 2
等 级:论坛游民
帖 子:123
专家分:25
注 册:2004-4-14
收藏
得分:0 


不客气 。。。

Member Of Qingfeng Studio 王旭华[http://][http://hi.baidu.com/rabbit5455]
2006-11-12 00:11
快速回复:[求助]为什么不对,错在什么地方???????????
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019330 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved