@[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