P1093 奖学金

题目链接

P1093 奖学金

题目梗概

给出学生的学号,语数英成绩。按照总分高的优先、语文分数高的优先和学号小的优先的三个排序原则对所有学生成绩进行排序。打印前五名。

解题思路

按照题目梗概解题即可。

完整代码

#include 
#include 
using namespace std;
struct student{
	int no, chinese, math, english, grade;
}s[301];

bool cmp(student a, student b){
	if(a.grade != b.grade) return a.grade > b.grade;
	else if(a.chinese != b.chinese) return a.chinese > b.chinese;
	else return a.no < b.no;
}
int main(){
	int n;
	cin >> n;
	for(int i = 0;i < n;i++){
		cin >> s[i].chinese >> s[i].math >> s[i].english;
		s[i].no = i + 1;
		s[i].grade = s[i].chinese + s[i].math + s[i].english;
	}
	sort(s, s + n, cmp);
	for(int i = 0;i < 5;i++){
		cout << s[i].no << " " << s[i].grade << endl;
	}
	return 0;
}

你可能感兴趣的:(洛谷)