EOJ(排序)——2849. 成績排序
阿新 • • 發佈:2019-01-11
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;
}