| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8420 人关注过本帖
标题:[求助] 输入五个国家的名字,按字母顺序(即按ASCII码从小到大的顺序)排列输 ...
取消只看楼主 加入收藏
a706708662
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2009-5-25
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:4 
[求助] 输入五个国家的名字,按字母顺序(即按ASCII码从小到大的顺序)排列输出。
[求助]  输入五个国家的名字,按字母顺序(即按ASCII码从小到大的顺序)排列输出。

      ~~~~~~希望用用数组来做~~~~~
搜索更多相关主题的帖子: 名字 从小到大 字母 排列 ASCII 
2009-10-28 17:31
a706708662
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2009-5-25
收藏
得分:0 
#include "stdio.h"
void main()
{
    char a[5][20];
    int i,j,t;
    int b[5]={0,1,2,3,4};
    printf("please input five countries' names:\n");
    for(i=0;i<5;i++)
      gets(a[i]);
    for(i=0;i<4;i++)
       for(j=i+1;j<5;j++)
              if(a[i][0]>a[j][0])
                 {  
                    /* t=b[i];
                     b[i]=b[j];
                     b[j]=t;*/
                    t=a[j][0];  
                    a[j][0]=a[i][0];  
                    a[i][0]=t;
                 }
     printf("the array of those five countries now is :\n");
     for(i=0;i<5;i++)
         puts(a[b[i]]);
         getch();
}
对~~~~~~~~~只考虑首字母就好了~~~
代码我运行了一下,好像不可以排序,在你的基础上我改了一下,现在可以排序了,谢谢你给我这个给多个字符串排序的思路~~~·
绿色的是我更改的部分,有兴趣就运行一下吧~~~~~
2009-10-28 18:49
a706708662
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2009-5-25
收藏
得分:0 
刚刚我试了一下,貌似可以不用数组 b[]

#include "stdio.h"
void main()
{
    char a[5][20];
    int i,j,t;
    printf("please input five countries' names:\n");
    for(i=0;i<5;i++)
      gets(a[i]);
    for(i=0;i<4;i++)
       for(j=i+1;j<5;j++)
              if(a[i][0]>a[j][0])
                 {
                    t=a[j][0];
                    a[j][0]=a[i][0];
                    a[i][0]=t;  
                 }
     printf("the array of those five countries now is :\n");
     for(i=0;i<5;i++)
         puts(a[i]);
         getch();
}
2009-10-28 18:55
a706708662
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2009-5-25
收藏
得分:0 
我错了,要用到数组 b[],不然输出的结果   单词的字母被打乱了,
2009-10-28 19:11
a706708662
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2009-5-25
收藏
得分:0 
#include "stdio.h"
void main()
{
    char a[5][20], b[20];
    int i,j;
    printf("please input five countries' names:\n");
    for(i=0;i<5;i++)
      gets(a[i]);
    for(i=0;i<4;i++)
       for(j=i+1;j<5;j++)
              if(a[i][0]>a[j][0])
                 {   
                    strcpy(b,a[i]);
                    strcpy(a[i],a[j]);
                    strcpy(a[j],b);

                 }
     printf("the array of those five countries now is :\n");
     for(i=0;i<5;i++)
       printf("%s\n",a[i]);
         getch();
}

这个只能实现首字母不同的……
如果首字母相同的话,这个就不能比较第二个字母……
2009-10-28 21:33
快速回复:[求助] 输入五个国家的名字,按字母顺序(即按ASCII码从小到大的顺序) ...
数据加载中...
 
   



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

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