成绩排序 - 华科 题解:
知识点:在 C++ 中,string
类型重载了比较运算符(如 <
, >
, ==
等),使得我们可以直接使用这些运算符来比较两个字符串的字典序。说人话就是字符串string的比较本身就是基于字典序,那问题就很简单了,只需要写一个cmp函数放进sort里就可以了。
代码:#include<bits/stdc++.h>
using namespace std;
typedef struct{
string name;
int score,age;
}stu;
int cmp(stu a,stu b){
if(a.score == b.score){
if(a.name == b.name){
return a.age < b.age;
}else return a.name < b.name;
}
else return a.score < b.score;
}
int main(){
int n;
cin >> n;
stu a[1005];
for(int i = 1;i <= n;i++){
cin >> a[i].name >> a[i].age >> a[i].score;
}
sort(a+1,a+1+n,cmp);...
登录后发布评论
暂无评论,来抢沙发