@[wei345](/user/1142251) 给你改的,但是不是你的思路
```
#include<iostream>
#include<algorithm>
using namespace std;
struct St{
string s;
int y,m,d;
}a[110];
int cmp(St a,St b){
if(a.y<b.y) return 1;
else if(a.y==b.y){
if(a.m<b.m) return 1;
else if(a.m==b.m){
if(a.d<b.d) return 1;
else if(a.d==b.d){
if(a.s>b.s){
return 1;
}
return 0;
}
return 0;
}
return 0;
}
return 0;
}
int n;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].s>>a[i].y>>a[i].m>>a[i].d;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
cout<<a[i].s<<endl;
}
return 0;
}
```
by liuzilin114514 @ 2024-02-18 19:42:59
@[wei345](/user/1142251) 不懂再找我
by liuzilin114514 @ 2024-02-18 19:43:33
@[wei345](/user/1142251) 用冒泡试试。
by danlao @ 2024-02-18 19:48:43
@[yaodiguoan](/user/1023793) 冒泡比sort麻烦
by liuzilin114514 @ 2024-02-18 19:53:59
@[liuzilin114514](/user/1191010) 但我有时用 `sort` 排序结构体,结果很容易出bag,换成冒泡就可以了。
by danlao @ 2024-02-18 19:57:04
@[yaodiguoan](/user/1023793) sort还有bug?
by liuzilin114514 @ 2024-02-18 20:00:47
@[liuzilin114514](/user/1191010) 我把那道题找出来看看。
by danlao @ 2024-02-18 20:01:33
@[yaodiguoan](/user/1023793) 但这道题我用sortAC了
by liuzilin114514 @ 2024-02-18 20:01:38
@[yaodiguoan](/user/1023793) OK
by liuzilin114514 @ 2024-02-18 20:03:03
@[liuzilin114514](/user/1191010) @[wei345](/user/1142251) 等一下我找到问题了,题目说“如果有两个同学生日相同,输入靠后的同学先输出”,他这里好像是靠前?
by danlao @ 2024-02-18 20:04:26