80分求助

P5740 【深基7.例9】最厉害的学生

``` 如果有多个总分相同的学生,输出靠前的那位。 ``` 应该删掉这段 ``` if(a[j].chenji==a[i].chenji) { if(a[j].name<a[i].name) { swap(a[j],a[i]); } } ```
by ajahjahah @ 2022-04-08 14:52:17


去掉就AC了 不过建议可以用sort(自定义函数或者是重载运算符)
by ajahjahah @ 2022-04-08 14:53:23


中间改下 ```c #include<bits/stdc++.h> using namespace std; struct student { string name; int c,m,e,chenji; } a[1000]; int main() { int i,l,n,p; cin>>n; for(int i=0;i<=n;i++) { cin>>a[i].name; cin>>a[i].c>>a[i].m>>a[i].e; a[i].chenji=a[i].c+a[i].m+a[i].e; } for(l=0;l<n;l++) { for(i=0;i<n;i++) { if(a[i].chenji<a[i+1].chenji) { swap(a[i].name,a[i+1].name); swap(a[i].chenji,a[i+1].chenji); swap(a[i].c,a[i+1].c); swap(a[i].m,a[i+1].m); swap(a[i].e,a[i+1].e); } } } cout<<a[0].name<<" "<<a[0].c<<" "<<a[0].m<<" "<<a[0].e; return 0; } ```
by tangyi091025 @ 2022-04-08 14:57:07


< 就行了
by tangyi091025 @ 2022-04-08 14:57:53


@[lao_ba](/user/357378) 去掉哪儿?
by zhanghanwen1112 @ 2022-04-08 14:57:57


@[zhanghanwen1112](/user/593211) 这一段是多余的 ``` if(a[j].chenji==a[i].chenji) { if(a[j].name<a[i].name) { swap(a[j],a[i]); } } ``` 因为题目没有要求总成绩相等时按照名字字典序排序
by ajahjahah @ 2022-04-08 14:59:24


如果有多个总分相同的学生,输出靠前的那位。
by tangyi091025 @ 2022-04-08 15:00:08


|