文章

52

粉丝

68

获赞

22

访问

11.5k

头像
成绩排序 - 华科 题解:自定义排序函数
P1404 华中科技大学
发布于2025年1月31日 10:18
阅读数 47

#include <bits/stdc++.h>
using namespace std;

struct SC{
    string name;
    int age;
    int score;
    SC():name(""),age(0),score(0){}
    SC(string name,int age,int score):name(name),age(age),score(score){}
    void print(){
        cout<<name<<" "<<age<<" "<<score<<endl;
    }
};

bool compare(SC a,SC 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;
    while(cin>>n){
        vector<SC>a(n);
        for(int i=0;i<n;i++){
            string name;
            int age,score;
            cin>>name>>age>>score;
            a[i]=SC(name,age,score);
        }
        sort(a.begin(),a.end(),compare);
        for(int i=0;i<n;i++){
            a[i].print();
        }
    }
}

这里用了vector,需要无参构造方法取生成,你可以用push_back,写起来更简单

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发