1 条题解

  • 0
    @ 2025-8-24 21:07:49

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar chen_zhe
    Aya 敲可爱的~

    搬运于2025-08-24 21:07:48,当前版本为作者最后更新于2025-05-28 14:06:02,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    欢迎报名洛谷网校,期待和大家一起进步!

    本题考察结构体,排序。

    我们用一个结构体 Stu 来存储每个学生的信息,包括名字 nm(字符串)和成绩 sc(整数):

    struct Stu {
        string nm;
        int sc;
    }a[105];
    

    这样,我们可以直接使用 a[i].nm 和 a[i].sc` 来获取第 ii 个学生的名字和成绩。

    接下来是排序部分。本题要求:主要按分数从大到小,且分数相同时,按名字的字母顺序从小到大。因此,我们把它当作排序的条件,进行排序即可。

    在参考代码中提供的是冒泡排序:

    for (int i = 1; i <= n - 1; ++i) {
        for (int j = 1; j <= n - i; ++j) {
            bool sw = false;
            // 分数小往后;分数相同名字大(字典序大)往后
            if (a[j].sc < a[j+1].sc || (a[j].sc == a[j+1].sc && a[j].nm > a[j+1].nm)) {
                Stu t = a[j];
                a[j] = a[j+1];
                a[j+1] = t;
            }
        }
    }
    
    • 1

    信息

    ID
    11816
    时间
    1000ms
    内存
    512MiB
    难度
    1
    标签
    递交数
    1
    已通过
    0
    上传者