题解
2023-07-25 16:07:10
发布于:上海
5阅读
0回复
0点赞
这道题主要考察结构体运用以及快速排序,这里是用sort()逃课以后的版本,精神状态有点恍惚,还请接纳:)
#include <bits/stdc++.h>
using namespace std;
//老朋友,万能头^和命名区间^
struct Node{
//这是结构体
int id,ch,math,eng,sum;
}a[310];
int cmp(Node x,Node y){
if(x.sum!=y.sum){
return x.sum>y.sum;//有关总分的排序逻辑
}
else if(x.ch!= y.ch){
return x.ch>y.ch;//有关语文的排序逻辑
}
else{
return x.id<y.id;//有关学号的排序逻辑(对于学号大的学生肯定很不公平:()
}
}
int main(){
int n;cin>>n;
for(int i=1;i<=n;i++){
Node t;
t.id=i;
cin>>t.ch>>t.math>>t.eng;//所有系统全部启动启动启动启动启动!
t.sum=t.ch+t.math+t.eng;//还有这个!!!
a[i]=t;//输入结构体(至于具体代码......个人习惯QWQ)
}
sort(a+1,a+n+1,cmp);//天才的馈赠
for(int i=1;i<=5;i++){
cout<<a[i].id<<" "<<a[i].sum<<" "<<endl;//排序完以后输出学号和总分
}
return 0;//别忘了
}
这里空空如也
有帮助,赞一个