> 如果有两个同学生日相同,输入靠后的同学先输出。
by liuzimingc @ 2021-11-22 13:17:11
@[liuzimingc](/user/421781) 谢谢!我看一下
by darren361 @ 2021-11-22 13:18:37
cmp那里
if(a.y!=b.y)return a.y<b.y;
else if(a.m!=b.m)return a.m<b.m;
else if(a.d!=b.d)return a.d<b.d;
else return a.no>b.no;
还有结构体,还要多拿一个变量no记录顺序
by 201012280925LSY @ 2021-12-17 22:14:05
```
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
struct st{
string name;
int y,m,d;
int type;
}a[10010];
int cmp(st a,st b){
if(a.y!=b.y) return a.y<b.y;
if(a.y==b.y&&a.m!=b.m) return a.m<b.m;
if(a.y==b.y&&a.m==b.m&&a.d!=b.d) return a.d<b.d;
if(a.y==b.y&&a.m==b.m&&a.d==b.d) return a.type>b.type;
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].name>>a[i].y>>a[i].m>>a[i].d;
a[i].type=i;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++) cout<<a[i].name<<endl;
}
```
# **完整AC代码**
by 宇智波 @ 2022-01-19 17:22:23
@[darren361](/user/452294)
by 宇智波 @ 2022-01-20 14:31:58