题目连接:P1093
解题知识:(1)结构体的使用 (2)sort函数重载
代码详解:
#include <bits/stdc++.h>
using namespace std;
const int N = 1005;
struct stu{
int num;
int sum;
int ch, ma, en;//语文 数学 英语
}a[N];
bool cmp(stu x,stu y) {//重载sort的比较函数
//根据题意要求
if (x.sum == y.sum) {
if (x.ch == y.ch) {
return x.num < y.num;
}else {
return x.ch > y.ch;
}
}else {
return x.sum > y.sum;
}
}
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].num = i;
}
sort (a + 1, a + n + 1, cmp);
for (int i = 1; i <= 5; i++) {
cout << a[i].num << " " << a[i].sum << endl;
}
return 0;
}