一道C的问题 请帮忙

题目是:编写程序:从键盘输入4个字符串(长度<20),存入二维字符数组中。然后对它们进行排序(由小到大顺序),最后输出排序后的4个字符串。输入、输出均为字符串。如输入:n... 题目是:编写程序:从键盘输入4个字符串(长度<20),存入二维字符数组中。然后对它们进行排序(由小到大顺序),最后输出排序后的4个字符串。
输入、输出均为字符串。
如输入:nwpu xjtu sina 163
输出:163 nwpu sina xjtu

我写的是:
#include"string.h"
main()
{
char str[5][20];
int i,j;
gets(str[0][20]);
gets(str[1][20]);
gets(str[2][20]);
gets(str[3][20]);
for(i=0;i<=3;i++)
for(j=i+1;j<=3;j++)
if(strcmp(str[i][20],str[j][20])>0)
{
strcpy(str[4][20],str[i][20]);
strcpy(str[i][20],str[j][20]);
strcpy(str[j][20],str[4][20]);
}
for(i=0;i<=3;i++)
puts(str[i][20]);
getch();
}
编译没错 运行就错了
初学C 请大家帮忙
展开
 我来答
ryw12403
2008-08-27 · TA获得超过1899个赞
知道大有可为答主
回答量:2501
采纳率:0%
帮助的人:2098万
展开全部
#include"string.h"
main()
{
char str[5][20];
int i,j;
gets(str[0][20]); //这四句都错了,gets(str[0])就行了.下同.
gets(str[1][20]); //str[1][20]这里是字符而不是字符串.只有在定义变量时才表示是字符串
gets(str[2][20]);
gets(str[3][20]);
for(i=0;i<=3;i++)
for(j=i+1;j<=3;j++)
if(strcmp(str[i][20],str[j][20])>0) //这里也是,用strcmp(str[i],str[j])就可以了,下同.
{
strcpy(str[4][20],str[i][20]);
strcpy(str[i][20],str[j][20]);
strcpy(str[j][20],str[4][20]);
}
for(i=0;i<=3;i++)
puts(str[i][20]); //这里也是
getch();
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式