P1249 运动会开幕(不用结构体的做法)

此篇博客介绍了如何使用C语言编程实现2014南京青运会运动员出场顺序,通过字符串比较实现按国家名字母顺序排序,确保东道主中国在最后出场。展示了样例输入和输出,以及关键代码片段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

P1249 运动会开幕(不用结构体的做法)

题目

2014 年 8 月在南京举行第 2 届奥林匹克青年运动会,每个国家在报名参加时需要填写国家名字,参加的人数,所属的洲,同时系统会自动生成一个报名序号,在开幕式的运动员出场顺序上,按照国家名字的英文字母顺序来出场。请编写一个计算机程序实现国家名字的排序(升序),东道主中国(China)在最后一个出场

输入描述

多组输入,其中每组输入的第一行表示参加国家数 n(占一行),下面 n 行是国家的报名信息(序号、国家名称、参加人数、所属大洲)

输出描述

按国家名字的字母序输出信息(东道主国家名字最后输出)。

样例输入

5
1 France 123 Europe
2 Russia 254 Europe
3 Japan 235 Asia
4 Germany 185 Europe
5 China 560 Asia

样例输出

1 France 123 Europe
4 Germany 185 Europe
3 Japan 235 Asia
2 Russia 254 Europe
5 China 560 Asia

代码

#include <stdio.h>
#include <string.h>
int main() {
    int n;
    while(~scanf("%d", &n)) {
        getchar();
        int num[n], Temp, CHN;
        char a[n][50], temp[50];
        int i, j;
        for(i=0; i<n; i++){
            scanf("%d", &num[i]);
            getchar();
            gets(a[i]);
            if(a[i][0]=='C'&&a[i][1]=='h'&&a[i][2]=='i'&&a[i][3]=='n'&&a[i][4]=='a'&&a[i][5]==' '){
                CHN = i;
            }
        }
        strcpy(temp , a[CHN]);
        strcpy(a[CHN] , a[n-1]);
        strcpy(a[n-1] , temp);
        Temp = num[CHN];
        num[CHN] = num[n-1];
        num[n-1] = Temp;

        temp[0] = '\0';
        for(i=0; i<n-2; i++){
            for(j=0; j<n-2-i; j++){
                if( strcmp(a[j] , a[j+1])>0 ){
                    strcpy(temp , a[j]);
                    strcpy(a[j] , a[j+1]);
                    strcpy(a[j+1] , temp);
                    Temp = num[j];
                    num[j] = num[j+1];
                    num[j+1] = Temp;
                }
            }
        }
        for(i=0; i<n; i++){
            printf("%d ", num[i]);
            puts(a[i]);
        }
    }
    return 0;
}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值