有 NN 个学生的数据,将学生数据按成绩从低到高排序,如果成绩相同则按姓名字符的字典序排序,如果姓名的字典序也相同则按照学生的年龄从小到大排序,并输出 NN 个学生排序后的信息。
输入格式
第一行有一个整数 NN。
接下来的 NN 行包括 NN 个学生的数据。每个学生的数据包括姓名(长度不超过 100100 的字符串)、年龄(小于等于 100100 的正数)、成绩(小于等于 100100 的正数)。
输出格式
将学生信息按成绩进行排序,成绩相同的则按姓名的字母序进行排序。
然后输出学生信息,按照如下格式:
姓名 年龄 成绩
学生姓名的字母序区分字母的大小写,如 AA 要比 aa 的字母序靠前(因为 AA 的 ASCII 码比 aa 的 ASCII 码要小)。
数据范围
1≤N≤10001≤N≤1000
输入样例:
复制代码1
2
3
4
53 abc 20 99 bcd 19 97 bed 20 97
输出样例:
复制代码1
2
3bcd 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++多排序的全部内容,更多相关成绩排序内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复