如果有多个总分相同的学生,输出靠前的那位。
by adsd45666 @ 2024-09-01 10:25:14
1. 比较优先级写错了,如本贴代码,则s[0]为最小的分数
2. 没有认真读题,若总分相同,则输出编号较小的,在结构体中新添变量id
重构结构体,则AC code:
```cpp
#include<bits/stdc++.h>
using namespace std;
struct S{
string name;
int c,m,e,id;
int zf(){
return c+m+e;
}
}s[10001];
bool cmp(S x,S y){
if(x.zf()==y.zf()) return x.id<y.id;
return x.zf()>y.zf();
}
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
s[i].id=i;
cin>>s[i].name>>s[i].c>>s[i].m>>s[i].e;
}
sort(s,s+n,cmp);
cout<<s[0].name<<" "<<s[0].c<<' '<<s[0].m<<' '<<s[0].e<<' ';
return 0;
}
```
by adsd45666 @ 2024-09-01 10:36:11
@[EternityForMe](/user/1038489)
by adsd45666 @ 2024-09-01 10:36:33