| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 493 人关注过本帖
标题:[求助]二维数组问题
只看楼主 加入收藏
wangch364200
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-12-12
收藏
 问题点数:0 回复次数:6 
[求助]二维数组问题
输入五个国家的名称按字母顺序排列输出
# include<stdio.h>
#include<string.h>
void main()
{
  char st[20],cs[5][20];
  int i,j,p;
  printf("input country's name:\n");
  for(i=0;i<5;i++)
   gets(cs[i]);
  printf("\n");
  for(i=0;i<5;i++)
  {
   p=i;strcpy(st,cs[i]);
   for(j=i+1;j<5;j++)
   {
if(strcmp(cs[j],st)<0)
{
p=j;
strcpy(st,cs[j]);
}
    if(p!=i)
    {
     strcpy(st,cs[i]);
     strcpy(cs[i],cs[p]);
     strcpy(cs[p],st);
    }
  } 
puts(cs[i]);}printf("\n");
  }
}
我输入了五个国家的名字之后看到的结果有前三个是按我要的顺序排列,后两个就造反了还是原来的顺序
搜索更多相关主题的帖子: 二维 字母 include 国家 
2007-01-08 12:52
SuperStar515
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2006-12-24
收藏
得分:0 

不好意思,多试了几下就有问题了

[此贴子已经被作者于2007-1-8 13:58:59编辑过]


喜欢等待,因为等待是一门需要花费一生才能读懂的艺术。等待。。。
2007-01-08 13:42
SuperStar515
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2006-12-24
收藏
得分:0 
# include<stdio.h>
#include<string.h>
void main()
{
  char st[20],cs[5][20];
  int i,j,p;
  printf("input country's name:\n");
  for(i=0;i<5;i++)
   gets(cs[i]);
  printf("\n");
  for(i=0;i<5;i++)
  {
   p=i;strcpy(st,cs[i]);
   for(j=i+1;j<5;j++)
   {
if(strcmp(cs[j],st)<0)
{
p=j;
strcpy(st,cs[j]);
}
    if(p!=i)
    {
     strcpy(st,cs[i]);
     strcpy(cs[i],cs[p]);
     strcpy(cs[p],st);
    }
  } 
puts(cs[i]);}printf("\n");
  }
}
红色的去掉应该就正确了吧?
我试了5次都没错

喜欢等待,因为等待是一门需要花费一生才能读懂的艺术。等待。。。
2007-01-08 15:57
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
建议将每部分的功能实现空一行隔开.这样修改起来就一目了然.

倚天照海花无数,流水高山心自知。
2007-01-08 17:05
wangch364200
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-12-12
收藏
得分:0 
为什么啊 我改了还是一样啊
2007-01-08 17:27
SuperStar515
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2006-12-24
收藏
得分:0 
#include<stdio.h>
#include<string.h>
void main()
{
char st[20],cs[5][20];
int i,j,p;
printf("input country's name:\n");
for(i=0;i<5;i++)
gets(cs[i]);
printf("\n");
for(i=0;i<5;i++)
{
p=i;strcpy(st,cs[i]);
for(j=i+1;j<5;j++)
if(strcmp(cs[j],st)<0)
{p=j;strcpy(st,cs[j]);}
if(p!=i)
{
strcpy(st,cs[i]);
strcpy(cs[i],cs[p]);
strcpy(cs[p],st);
}
puts(cs[i]);
}
printf("\n");
}
没错了吧?

[此贴子已经被作者于2007-1-8 17:37:27编辑过]


喜欢等待,因为等待是一门需要花费一生才能读懂的艺术。等待。。。
2007-01-08 17:35
神秘失恋
Rank: 1
等 级:新手上路
帖 子:663
专家分:0
注 册:2007-1-6
收藏
得分:0 
以下是引用wangch364200在2007-1-8 12:52:41的发言:
输入五个国家的名称按字母顺序排列输出

我输入了五个国家的名字之后看到的结果有前三个是按我要的顺序排列,后两个就造反了还是原来的顺序


活了?


上帝之手.........
2007-01-08 17:40
快速回复:[求助]二维数组问题
数据加载中...
 
   



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

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