EOJ(排序)——2849. 成绩排序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_29978597/article/details/86257753

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

猜你喜欢

转载自blog.csdn.net/qq_29978597/article/details/86257753