| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4313 人关注过本帖
标题:从键盘输入多个国家的名称,编写程序按字母顺序排列出场次序,并按出场顺序 ...
只看楼主 加入收藏
biemenghan
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2020-6-20
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
从键盘输入多个国家的名称,编写程序按字母顺序排列出场次序,并按出场顺序输出各国家名称。
小白小弟初来驾到,求各位指点

输入格式:
第1行输入1个整数n(0≤n≤20),表示出场国家数量;之后 n行,每行输入1个国家名称(国家名称长度不超过20,可含空格)。

输出格式:
按字母序输出n行国家名称。若输入国家数n不合题意,则输出“Data Error”;若国家数为0,无输出。

输入样例:
5
Romania
United Kingdom
America
China
Brazil
输出样例:
America
Brazil
China
Romania
United Kingdom
搜索更多相关主题的帖子: 输入 名称 国家 顺序 输出 
2020-06-20 11:54
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10608
专家分:43190
注 册:2014-5-20
收藏
得分:5 
字符串排序
2020-06-20 12:00
biemenghan
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2020-6-20
收藏
得分:0 
回复 2楼 吹水佬
能否帮忙给出具体的,时间比较紧🙏
2020-06-20 12:02
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10608
专家分:43190
注 册:2014-5-20
收藏
得分:0 
以下是引用biemenghan在2020-6-20 12:02:18的发言:

能否帮忙给出具体的,时间比较紧🙏

数值排序是数值大小的比较,这个会吧,将“数值”的概念换成“字符串”的概念就是

2020-06-20 15:17
fulltimelink
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:171
专家分:752
注 册:2020-4-1
收藏
得分:5 
fgets为啥要读回车。。。。
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int cmpFunc(const void *a, const void*b) {
    return strcmp((*(char **)a) ,(*(char **)b));
}

int main(){
    int n;
    scanf("%d", &n);
    if(0 >= n) return 0;
    getchar();
    char **strp = (char **)malloc(sizeof(char *) * n);
    for(int i=0;i<n;i++){
        *(strp+i) = (char *)malloc(sizeof(char) * 21);
        fgets(*(strp+i), 21, stdin);
    }
    qsort(strp, n, sizeof(char *), cmpFunc);
    for(int i=0;i<n;i++){
        printf("%s", *(strp+i));
        free(*(strp+i));
    }
    free(strp);
    return 0;
}
2020-06-20 17:03
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
收藏
得分:5 
以下是引用biemenghan在2020-6-20 11:54:30的发言:

小白小弟初来驾到,求各位指点

输入格式:
第1行输入1个整数n(0≤n≤20),表示出场国家数量;之后 n行,每行输入1个国家名称(国家名称长度不超过20,可含空格)。

输出格式:
按字母序输出n行国家名称。若输入国家数n不合题意,则输出“Data Error”;若国家数为0,无输出。

输入样例:
5
Romania
United Kingdom
America
China
Brazil
输出样例:
America
Brazil
China
Romania
United Kingdom


贵客架子好大哈,不敢指点,好走不送。
2020-06-20 19:44
粉jj
Rank: 2
等 级:论坛游民
威 望:1
帖 子:123
专家分:82
注 册:2011-3-8
收藏
得分:5 
回复 楼主 biemenghan
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main()
{char c[20][80],(*p)[80]=c,*t;
int n,i,j;
scanf("%d",&n);
if(n<0||n>20){printf("data error");exit(0);}
for(i=0;i<n;i++)
scanf("%s",c[i]);
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(strcmp(p[j],p[j+1])>0){strcpy(t,p[j]);strcpy(p[j],p[j+1]);strcpy(p[j+1],t);}
for(i=0;i<n;i++)
puts(c[i]);
}
2020-06-21 16:26
快速回复:从键盘输入多个国家的名称,编写程序按字母顺序排列出场次序,并按出场 ...
数据加载中...
 
   



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

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