主页
搜索
最近更新
数据统计
赞助我们
系统公告
1
/
1
请查看完所有公告
B2159 成绩排序
最后更新于 2025-06-15 14:12:23
作者
chen_zhe
分类
题解
题解
B2159
复制 Markdown
查看原文
更新内容
欢迎报名[洛谷网校](https://class.luogu.com.cn/),期待和大家一起进步! 本题考察结构体,排序。 我们用一个结构体 `Stu` 来存储每个学生的信息,包括名字 `nm`(字符串)和成绩 `sc`(整数): ```cpp struct Stu { string nm; int sc; }a[105]; ``` 这样,我们可以直接使用 `a[i].nm` 和 a[i].sc` 来获取第 $i$ 个学生的名字和成绩。 接下来是排序部分。本题要求:主要按分数从大到小,且分数相同时,按名字的字母顺序从小到大。因此,我们把它当作排序的条件,进行排序即可。 在参考代码中提供的是冒泡排序: ```cpp 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; } } } ```
正在渲染内容...
点赞
2
收藏
0