高质量题解|A21699.奖学金
2026-02-09 16:07:04
发布于:河北
5阅读
0回复
0点赞
解题思路
结构体内有 5 个元素,分别是语文、数学、英语、总分和顺序
排序规则是先排总分,总分一样则排语文,最后按顺序从小到大
因为题目只要求输出前 5 位,所以我们只用从 1 循环到 5 就行了
代码
#include <bits/stdc++.h>
using namespace std;
struct stu{
int ch,ma,en,sum,id;
}a[1010];
bool cmp(stu x,stu 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;
cin >> n;
for(int i = 1;i <= n;i++){
cin >> a[i].ch >> a[i].ma >> a[i].en;
a[i].sum = a[i].ch + a[i].ma + a[i].en;
a[i].id = i;
}
sort(a + 1,a + n + 1,cmp);
for(int i = 1;i <= 5;i++){
cout << a[i].id << " " << a[i].sum << endl;
}
return 0;
}
这里空空如也








有帮助,赞一个