0
已解决
结构体的题竟然还错!
https://ke.codingtang.com/#/problem/problemSub?id=2732
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,a,b,c,f;
struct pm{
int dd,v;
}s[350];
bool cmp(pm x,pm y){
return x.v>y.v;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a>>b>>c;
s[i].v=a+b+c;
s[i].dd=i;
}
sort(s+1,s+n+1,cmp);
if(n>=5) f=5;
else f=n;
for(int i=1;i<=f;i++){
cout<<s[i].dd<<" "<<s[i].v<<endl;
}
return 0;
}
90分
0
已采纳
题目要求:如果两个同学总分和语文成绩都相同,那么规定学号小的同学 排在前面。
你在排序时并没有考虑学号,你改一下
(你这方法太特别了)
朱子尘在2021-01-07 20:31:40追加了内容
还有语文成绩
1
0
0
g[305];//结构体数组(范围:5<n≤300)。
bool cmp(people x,people y)//sort排序定义两个结构体变量x,y。
{
/*
排序内容(每个学生的排序是唯一确定的):
1.先按总分从高到低排序。
2.如果两个同学总分相同,再按语文成绩从高到低排序。
3.如果两个同学总分和语文成绩都相同,那么规定学号小的同学 排在前面。
*/
if(x.sum!=y.sum)
{
return x.sum>y.sum;
}
if(x.Chinese!=y.Chinese)
{
return x.Chinese>y.Chinese;
}
return x.id<y.id;
}