EOJ(排序)——2849. 成绩排序
2849. 成绩排序
有 n(1⩽n⩽100)个学生的成绩记录,其中包含学号和成绩两项。
按照成绩从高到低顺序输出成绩及格(⩾60)学生的学号和成绩。成绩相同时按照学号从小到大顺序输出。
输入
第 1 行:输入一个整数 n,表示学生记录数。
第 2 行 ~ n+1 行:每行是学号(11 位数字)及成绩(0 到 100 之间的整数)。学号和成绩之间有一个空格。
输出
按要求输出结果,每行输出一个空格分隔的学号及成绩。
样例
input
5
10002130201 90
10002130230 80
10002130231 85
10002130148 48
10002130167 90
output
10002130167 90
10002130201 90
10002130231 85
10002130230 80
题目大意:
成绩按要求排序。
题目解析:
sort函数。
具体代码:
#include<iostream>
#include<algorithm>
using namespace std;
struct node{
long long id;
int score;
}s[110];
bool cmp(node x,node y){
if(x.score!=y.score)
return x.score>y.score;
return x.id<y.id;
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>s[i].id>>s[i].score;
}
sort(s,s+n,cmp);
for(int i=0;i<n;i++)
if(s[i].score>=60)
cout<<s[i].id<<" "<<s[i].score<<endl;
return 0;
}