成绩排序c++
说明
给出了班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相同分数则名字字典序小的在前。
输入格式
第一行为nn(0<n<200<n<20),表示班里的学生数目;
接下来的nn行,每行为每个学生的名字和他的成绩,中间用单个空格隔开。名字只包含字母且长度不超过2020,成绩为一个不大于100100的非负整数。
输出格式
把成绩单按分数从高到低的顺序进行排序并输出,每行包含名字和分数两项,之间有一个空格。
样例
输入数据 1
4
Kitty 80
Hanmeimei 90
Joey 92
Tim 28
Copy
输出数据 1
Joey 92
Hanmeimei 90
Kitty 80
Tim 28
代码
#include<bits/stdc++.h>
using namespace std;
struct s{
string m;
int f;
}a[21];
bool d(s b,s c){
if(c.f==b.f)return b.m<c.m;
return b.f>c.f;
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].m>>a[i].f;
}
sort(a+1,a+n+1,d);
for(int i=1;i<=n;i++){
cout<<a[i].m<<" "<<a[i].f<<endl;
}
return 0;
}