求助,为什么只有80分
查看原帖
求助,为什么只有80分
93965
潘寒楼主2023/9/23 20:09
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>

using namespace std;

struct student {
	int p;
	int ch;
	int ma;
	int en;
	int sum;
};
student s[301];
int n;
int compsum(const student& a, const student& b)
{
	return a.sum > b.sum;
}
int main(void) {
	cin >> n;
	for (int i = 1; i <= n; i++) {
		s[i].p = i;
		cin >> s[i].ch >> s[i].ma >> s[i].en;
		s[i].sum = s[i].ch + s[i].ma + s[i].en;
	}
	sort(s + 1, s + n + 1, compsum);
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= i; j++) {
			if ((s[i].sum == s[i + 1].sum) && (s[i].ch < s[i + 1].ch))  swap(s[i], s[i + 1]); break;
			if ((s[i].sum == s[i + 1].sum) && (s[i].ch == s[i + 1].ch) && (s[i].p < s[i + 1].p))  swap(s[i], s[i + 1]); break;
		}
	}
	for (int i = 1; i <= 5; i++) {
		cout << s[i].p << " " << s[i].sum << endl;
	}
	return 0;
}
2023/9/23 20:09
加载中...