文章

13

粉丝

171

获赞

8

访问

38.8k

头像
分数相同,按照名字排序;名字也相同,按照年龄排序
P1404 华中科技大学
发布于2023年2月2日 16:08
阅读数 2.9k

#include <iostream>
#include <string.h>
#include <algorithm>

using namespace std;

struct Student {
    string name;
    int age;
    int score;
} stu[64];

bool cmp(Student a, Student b) {
    if (a.score == b.score) {//分数相同,按照名字排序
        if (a.name == b.name) {//名字也相同,按照年龄排序
            return a.age < b.age;//年龄不同,按照年龄从小到大排序
        }
        return a.name < b.name;//名字不同,按照名字从小到大排序
    }
    return a.score < b.score;//分数不同,按照从小到大排序
}

int main() {
    int n;
    while (cin >> n) {
        for (int i = 0; i < n; i++)
            cin >> stu[i].name >> stu[i].age >> stu[i].score;
        sort(stu, stu + n, cmp);
        for (int i = 0; i < n; i++)
            cout << stu[i].name << ' ' << stu[i].age << ' ' << stu[i].score << endl;
    }
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发