文章

9

粉丝

0

获赞

27

访问

354

头像
成绩排序 - 华科 题解:
P1404 华中科技大学
发布于2025年3月10日 23:05
阅读数 19

知识点:在 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);...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发