80求助

P1104 生日

@[Zxun](/user/592342) > 如果有两个同学生日相同,输入靠后的同学先输出
by qwq___qaq @ 2022-02-01 16:15:16


@[_sto_pengzijun_orz_](/user/556362) 刚解决了,感谢
by WA_automat @ 2022-02-01 16:16:48


## AC代码 ```c #include<stdio.h> typedef struct{ char name[20]; int year; int month; int day; int num; }student; int main(void) { int n; student list[100]; scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%s",list[i].name); scanf("%d %d %d",&list[i].year,&list[i].month,&list[i].day); list[i].num=i+1; } for(int i=0;i<n;i++) { for(int j=0;j<n-1;j++) { if(list[j].year*10000+list[j].month*100+list[j].day>list[j+1].year*10000+list[j+1].month*100+list[j+1].day) { student middle; middle=list[j]; list[j]=list[j+1]; list[j+1]=middle; } if(list[j].year==list[j+1].year&&list[j].month==list[j+1].month&&list[j].day==list[j+1].day) { if(list[j].num<list[j+1].num) { student middle; middle=list[j]; list[j]=list[j+1]; list[j+1]=middle; } } } } for(int i=0;i<n;i++) printf("%s\n",list[i].name); return 0; } ```
by WA_automat @ 2022-02-01 16:17:45


增加了编号以判断相同生日的结构体是否需要交换位置(帮后面的人排排雷)
by WA_automat @ 2022-02-01 16:21:04


|