我是靠谱客的博主 热心手套,这篇文章主要介绍成绩排序 C++多排序,现在分享给大家,希望可以做个参考。

有 NN 个学生的数据,将学生数据按成绩从低到高排序,如果成绩相同则按姓名字符的字典序排序,如果姓名的字典序也相同则按照学生的年龄从小到大排序,并输出 NN 个学生排序后的信息。

输入格式

第一行有一个整数 NN。

接下来的 NN 行包括 NN 个学生的数据。每个学生的数据包括姓名(长度不超过 100100 的字符串)、年龄(小于等于 100100 的正数)、成绩(小于等于 100100 的正数)。

输出格式

将学生信息按成绩进行排序,成绩相同的则按姓名的字母序进行排序。

然后输出学生信息,按照如下格式:

姓名 年龄 成绩

学生姓名的字母序区分字母的大小写,如 AA 要比 aa 的字母序靠前(因为 AA 的 ASCII 码比 aa 的 ASCII 码要小)。

数据范围

1≤N≤10001≤N≤1000

输入样例:

复制代码
1
2
3
4
5
3 abc 20 99 bcd 19 97 bed 20 97

输出样例:

复制代码
1
2
3
bcd 19 97 bed 20 97 abc 20 99
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include<iostream> #include<cstring> #include<algorithm> using namespace std; const int N=1010; struct Student{ string name; int age,score; bool operator< (const Student& t) const { if(score!=t.score) return score<t.score; if(name!=t.name) return name<t.name; return age<t.age; } }q[N]; int main() { int n; cin>>n; for(int i=0;i<n;i++) { cin>>q[i].name>>q[i].age>>q[i].score; } sort(q,q+n); for(int i=0;i<n;i++) { cout<<q[i].name<<" "<<q[i].age<<" "<<q[i].score<<endl; } return 0; }

 2022/7/27

最后

以上就是热心手套最近收集整理的关于成绩排序 C++多排序的全部内容,更多相关成绩排序内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(89)

评论列表共有 0 条评论

立即
投稿
返回
顶部