【PAT甲级 结构体排序水题】1028 List Sorting (25 分)

为什么会有这么简单的题…………

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

struct Stu{
    
    
    int id;
    string name;
    int score;
};
vector<Stu> stu;
int N, C;

int main() {
    
    
    cin >> N >> C;
    stu.resize(N);
    for(int i = 0;i < N;++i)
        cin >> stu[i].id >> stu[i].name >> stu[i].score;
    
    if(C == 1){
    
    
        sort(stu.begin(), stu.end(), [](Stu a, Stu b){
    
    
            return a.id < b.id;
        });
    } else
    if(C == 2){
    
    
        sort(stu.begin(), stu.end(), [](Stu a, Stu b){
    
    
            if(a.name == b.name)
                return a.id < b.id;
            return a.name < b.name;
        });
    } else
    if(C == 3){
    
    
        sort(stu.begin(), stu.end(), [](Stu a, Stu b){
    
    
            if(a.score == b.score)
                return a.id < b.id;
            return a.score < b.score;
        });
    }

    for(Stu s: stu){
    
    
        printf("%06d ", s.id);
        cout << s.name;
        printf(" %d\n", s.score);
    }

}

猜你喜欢

转载自blog.csdn.net/MYMarcoreus/article/details/114321939