请问这个代码该如何改?
问题描述:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define MAX_ORDER 20
struct information{
int Order;
char Name[16];
int Number;
char Location[16];
};
int main()
{
int i,j,n;
struct information Name_information[MAX_ORDER];
struct information temp;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d %s %d %s",&Name_information[i].Order,&Name_information[i].Name,&Name_information[i].Number,&Name_information[i].Location);
for(i=0;i<n-1;i++)
{
for(j=i;j<n-1;j++)
{
if(strcmp(Name_information[i].Name,Name_information[j].Name)>0)
{
temp=Name_information[i];
Name_information[i]=Name_information[j];
Name_information[j]=temp;
}
}
}
for(i=0;i<n;i++)
printf("%d %s %d %s\r\n",Name_information[i].Order,Name_information[i].Name,Name_information[i].Number,Name_information[i].Location);
}
题目
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>
struct information{
int Order;
char Name[16];
int Number;
char Location[16];
};
int main()
{
int i,j,n;
while (~scanf("%d",&n)){
struct information Name_information[n], China;
for(i=0;i<n;i++){
scanf("%d %s %d %s",&Name_information[i].Order,Name_information[i].Name,&Name_information[i].Number,Name_information[i].Location);
if(strcmp(Name_information[i].Name,"China")==0){ China = Name_information[i]; }
}
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(strcmp(Name_information[j].Name,Name_information[j+1].Name)>0)
{
struct information temp=Name_information[j];
Name_information[j]=Name_information[j+1];
Name_information[j+1]=temp;
}
}
}
for(i=0;i<n;i++){
if (Name_information[i].Order == China.Order) continue;
printf("%d %s %d %s\n",Name_information[i].Order,Name_information[i].Name,Name_information[i].Number,Name_information[i].Location);
}
printf("%d %s %d %s\n",China.Order,China.Name,China.Number,China.Location);
}
return 0;
}
答
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10768339.html