3601. 成绩排序
作者:
lvjj
,
2024-03-15 17:17:06
,
所有人可见
,
阅读 14
//考察结构体排序
#include <bits/stdc++.h>
using namespace std;
int n;
const int N = 1010;
struct Gather{
string name;
int age,score;
}gather[N];
//cmp返回值是bool
bool cmp(Gather a,Gather b){//对随机两个结构体数组对象作比较。先对成绩排序,再对名字,其次是年龄,顺序不能反
if(a.score!=b.score) return a.score<b.score;//小于号相当于升序排序
if(a.name!=b.name) return a.name<b.name;
return a.age<b.age;
}
int main(){
cin>>n;
for(int i=0;i<n;i++) cin>>gather[i].name>>gather[i].age>>gather[i].score;
sort(gather,gather+n,cmp);//这范围是左闭右开,从gather[0]到gather[n]。
for(int i=0;i<n;i++)cout<<gather[i].name<<' '<<gather[i].age<<' '<<gather[i].score<<endl;
return 0;
}