- 奖学金
结构体排序
- 2025-4-13 16:10:14 @
#include<bits/stdc++.h>
using namespace std;
struct Stu // 声明了一个自定义类型叫做Stu
{
int total; // 总分
int cn, math, en; // 语数外
int id; // 学号
};
Stu p[310];
bool cmp(Stu a, Stu b)
{
if (a.total == b.total) // 总分相同
{
if (a.cn == b.cn) // 语文相同
return a.id < b.id; // 学号小在前
else
return a.cn > b.cn; // 语文高在前
}
else
return a.total > b.total; // 总分高在前
}
int main()
{
int n;
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> p[i].cn >> p[i].math >> p[i].en;
p[i].total = p[i].cn + p[i].math + p[i].en; // 求总分
p[i].id = i; // 构造学号
}
sort(p+1, p+1+n, cmp); // 排序,范围是[1, n]
for (int i = 1; i <= 5; i++)
cout << p[i].id << " " << p[i].total << endl;
return 0;
}
0 条评论
目前还没有评论...
信息
- ID
- 244
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 34
- 已通过
- 13
- 上传者