题解(带注释)
2023-07-20 17:00:20
发布于:上海
21阅读
0回复
0点赞
#include <bits/stdc++.h> //导入万能头
using namespace std; //命名空间
struct Student {
string name;
int id, ch, ma, eng, sum; //id:学号;ch:语文分数;ma:数学分数;eng:英语分数;sum:总分.
} a[305];
int cmp(Student x, Student y) {
if(x.sum != y.sum) {
return x.sum > y.sum; //先判断总分
} else if(x.ch != y.ch) {
return x.ch > y.ch; //判断语文分数
} else {
return x.id < y.id; //判断学号大小
}
}
int main() {
int n; //n表示学生人数
cin >> n;
for(int i=0; i<n; i++) {
cin >> a[i].ch >> a[i].ma >> a[i].eng; //输入分数
a[i].id = i+1; //赋值学号
a[i].sum = a[i].ch + a[i].ma + a[i].eng;//赋值总分
}
sort(a, a+n, cmp); //用sort函数进行排序
for(int i=0; i<5; i++) {
cout << a[i].id << " " << a[i].sum << endl;//输出前5名的结果
}
return 0;
}
全部评论 1
行
2023-07-25 来自 河北
0
有帮助,赞一个