| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 564 人关注过本帖
标题:[求助]程序错误出在哪?
只看楼主 加入收藏
gioxiao
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-10-14
收藏
 问题点数:0 回复次数:6 
[求助]程序错误出在哪?
#include "stdio.h"
#include "string.h"
void ff(char *p[5])
{
int i,j;
char *q;
for(i=0;i<4;i++)
{
for(j=1;j<=4-i;j++)
{
if(strcmp(p[j-1],p[j])>0)
{
strcpy(q,p[j-1]);
strcpy(p[j-1],p[j]);
strcpy(p[j],q);
}
}
}
}
main()
{
char a[5][20];
int i;
printf("请输入5个国家的名称\n");
for(i=0;i<5;i++);
gets(a[i]);
ff(a[5]);
for(i=0;i<5;i++)
printf("%10s",a[5]);
}


到底错在哪?
请大家指出来.
谢谢~
搜索更多相关主题的帖子: 程序错误 
2006-10-26 22:40
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用gioxiao在2006-10-26 22:40:05的发言:
#include "stdio.h"
#include "string.h"
void ff(char *p[5])
{
int i,j;
char *q=NULL;
for(i=0;i<4;i++)
{
for(j=1;j<=4-i;j++)
{
if(strcmp(p[j-1],p[j])>0)
{
strcpy(q,p[j-1]);
strcpy(p[j-1],p[j]);
strcpy(p[j],q);
}
}
}
}
main()
{
char a[5][20];
int i;
printf("请输入5个国家的名称\n");
for(i=0;i<5;i++);
gets(a[i]);
ff(a);
for(i=0;i<5;i++)
printf("%10s",a[5]);
}


到底错在哪?
请大家指出来.
谢谢~

不知道你的程序是做什么的,所以结果我不知道是否正确.


倚天照海花无数,流水高山心自知。
2006-10-26 23:37
gioxiao
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-10-14
收藏
得分:0 

先谢谢你了.
然后我按你的改动了下,但是还是出错..
原题目是
用指针数组编写一个函数,用于将5个预定仪的国家名排序.在MAIN函数中调用该函数完成排序,并输出排序前后的信息.

2006-10-26 23:40
小小贝
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-9-21
收藏
得分:0 

哈哈.这题我做过...
#include <stdio.h>
#include <string.h>
void hs(char *name[5]);
void main()
{
char *name[]={"beijin","shanghai","tokey","london","washington"};
hs(name);
}
void hs(char *name[5])
{
int i,j;
char *p;
for(i=0;i<4;i++)
{
for(j=0;j<4-i;j++)
if(strcmp(name[j],name[j+1])>0)
{
p=name[j];
name[j]=name[j+1];
name[j+1]=p;
}
}
printf("排序后:");
for(i=0;i<5;i++)
puts(name[i]);
}
楼主貌似函数没返回值.....

2006-10-26 23:56
gioxiao
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-10-14
收藏
得分:0 
我想应该是可以不要返回值的?
因为这个函数已经发生了地址的传送.
实参已经发生改变...

小贝贝,谢谢了,你的程序可以完成.
我的在输入字符的时候就会结束任务..
纳闷啊~~~
2006-10-27 00:05
小小贝
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-9-21
收藏
得分:0 
用结构体接受输入也行..刚做的...
#include <stdio.h>
#include <string.h>
struct guojia
{
char guoming[20];
}a[5];
void ff(struct guojia a[5])
{
int i,j;
char q[20];
for(i=0;i<4;i++)
{
for(j=1;j<=4-i;j++)
{
if(strcmp(a[j-1].guoming,a[j].guoming)>0)
{
strcpy(q,a[j-1].guoming);
strcpy(a[j-1].guoming,a[j].guoming);
strcpy(a[j].guoming,q);
}
}
}
for(i=0;i<5;i++)
printf("%s",a[i].guoming);
}
void main()
{
int i;
printf("请输入5个国家的名称\n");
for(i=0;i<5;i++)
gets(a[i].guoming);
ff(a);
}
2006-10-27 00:43
小小贝
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-9-21
收藏
得分:0 
#include "stdio.h"
#include "string.h"
void ff(char *p[5])
{
int i,j;
char *q=NULL;
for(i=0;i<4;i++)
{
for(j=1;j<=4-i;j++)
{
if(strcmp(p[j-1],p[j])>0)
{
strcpy(q,p[j-1]); <---指针能用这方法??
strcpy(p[j-1],p[j]);
strcpy(p[j],q);
}
}
}
}
main()
{
char a[5][20];
int i;
printf("请输入5个国家的名称\n");
for(i=0;i<5;i++); <-----多";"
gets(a[i]); <------这里的a还是二维字符数组?
ff(a);
for(i=0;i<5;i++)
printf("%10s",a[5]); <-----%s中间+个10是什么意思??
}
主要问题是C语言中没有字符串类型(如JAVA中的String等),貌似只有用我上面的结构才能输入.....我也不知道怎么说清楚......请高手指教把还是.......
2006-10-27 00:52
快速回复:[求助]程序错误出在哪?
数据加载中...
 
   



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

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