AC代码:
```cpp
#include<iostream>
#include<algorithm>
using namespace std;
struct node{
int yuwen;
int sum;
int id;
//不定义数学与英语成绩,因为它们不参与到名次的高低问题
}a[100001];
int n,shuxue,yingyu;
int cmp(node x,node y){
if(x.sum!=y.sum){
return x.sum>y.sum;//总分大优先
}
if(x.yuwen!=y.yuwen){
return x.yuwen>y.yuwen;//语文大优先
}
if(x.id!=y.id){
return x.id<y.id;//学号小优先
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].yuwen>>shuxue>>yingyu;
a[i].sum=a[i].yuwen+shuxue+yingyu;//处理总分
a[i].id=i;//处理学号
}
sort(a+1,a+n+1,cmp);
//输出前5名
for(int i=1;i<=5;i++){
cout<<a[i].id<<" "<<a[i].sum<<endl;
}
return 0;
}
```
by RockyChen @ 2023-12-24 17:51:56
你最后一个循环的范围写错了
by xueshengyi @ 2023-12-24 18:03:00
应该是
```cpp
i=1;i<=5;i++
```
by xueshengyi @ 2023-12-24 18:03:29
@[xueshengyi](/user/971543)
感谢大佬!
关注已OK!
by xjj110626 @ 2023-12-27 15:37:47