题目中说到:\
**如果有两个同学生日相同,输入靠后的同学先输出**\
而你的代码中没有注意到。\
大概帮你改了一下:
```cpp
#include <bits/stdc++.h>//年=y,月=m,日=d
using namespace std;
struct f{
string s;
int y,m,d,id;
}a[105];
int n;
int cmp(f xx,f yy){
if(xx.y==yy.y){
if(xx.m==yy.m){
if(xx.d==yy.d) return xx.id>yy.id;
return xx.d<yy.d;
}
return xx.m<yy.m;
}
else{
return xx.y<yy.y;
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].s>>a[i].y>>a[i].m>>a[i].d;
a[i].id=i;
}
sort(a+1,a+1+n,cmp);
for(int i=1;i<=n;i++){
cout<<a[i].s<<endl;
}
return 0;
}
```
by liqiu_ @ 2023-03-22 20:40:35
@[aiueo](/user/662796) 谢谢,没看到
by wang0728 @ 2023-03-28 19:44:44