题目描述
输入n个学生的信息,包括姓名、性别、出生年月。要求按年龄从小到大依次输出这些学生的信息。数据保证没有学生同年同月出生。
输入
第一行输入一个整数n表示学生人数(n<=100)
接下来n行,每一行依次输入学生的姓名、性别、出生年份、出生年月
输出
按年龄从小到大,一行输出一个学生的原始信息
样例输入
5 John male 1999 12 David female 1999 8 Jason male 1998 11 Jack female 1998 8 Kitty female 2000 7
样例输出
Kitty female 2000 7 John male 1999 12 David female 1999 8 Jason male 1998 11 Jack female 1998 8
#include<stdio.h>
struct stu{
char name[20];
char sex[6];
int year;
int month;
};
int main(){
int n,i,j,r;
struct stu s[100],t;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%s%s%d%d",&s[i].name,&s[i].sex,&s[i].year,&s[i].month);
}
for(j=0;j<n;j++){
for(r=j+1;r<n;r++){
if(s[j].year<s[r].year){
t=s[j];
s[j]=s[r];
s[r]=t;
}
if(s[j].year==s[r].year&&s[j].month<s[r].month){
t=s[j];
s[j]=s[r];
s[r]=t;
}
}
printf("%s %s %d %d\n",s[j].name,s[j].sex,s[j].year,s[j].month);
}
return 0;
}