1. 程式人生 > >EOJ(排序)——2849. 成績排序

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; }