@[Wzq20101105](/user/757673)
用 $sort$ 排序而不自己写函数的话 , 会自动从小到大排序 , 不符合题意 . 这道题应该自己写排序的自定义函数 , 可能还要用到结构体 .
看一下我的代码吧 :
```cpp
#include<bits/stdc++.h>
using namespace std;
struct point{
int id;
int yuwen,shuxue,yingyu;
int zongfen;
}a[301];;
int n;
bool cmp(point i,point j){
if(i.zongfen>j.zongfen){
return 1;
}else if(i.zongfen<j.zongfen){
return 0;
}else {
if(i.yuwen>j.yuwen){
return 1;
}else if(i.yuwen<j.yuwen){
return 0;
}else {
return i.id<j.id;
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].yuwen>>a[i].shuxue>>a[i].yingyu;
a[i].zongfen=a[i].yuwen+a[i].shuxue+a[i].yingyu;
a[i].id=i;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=5;i++){
cout<<a[i].id<<" "<<a[i].zongfen<<endl;
}
return 0;
}
```
by GXZJQ @ 2023-12-22 12:59:37
谢谢大佬解惑。
by Wzq20101105 @ 2023-12-22 13:04:52