概述
有 NN 个学生的数据,将学生数据按成绩从低到高排序,如果成绩相同则按姓名字符的字典序排序,如果姓名的字典序也相同则按照学生的年龄从小到大排序,并输出 NN 个学生排序后的信息。
输入格式
第一行有一个整数 NN。
接下来的 NN 行包括 NN 个学生的数据。每个学生的数据包括姓名(长度不超过 100100 的字符串)、年龄(小于等于 100100 的正数)、成绩(小于等于 100100 的正数)。
输出格式
将学生信息按成绩进行排序,成绩相同的则按姓名的字母序进行排序。
然后输出学生信息,按照如下格式:
姓名 年龄 成绩
学生姓名的字母序区分字母的大小写,如 AA 要比 aa 的字母序靠前(因为 AA 的 ASCII 码比 aa 的 ASCII 码要小)。
数据范围
1≤N≤10001≤N≤1000
输入样例:
3 abc 20 99 bcd 19 97 bed 20 97
输出样例:
bcd 19 97 bed 20 97 abc 20 99
#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++多排序的全部内容,希望文章能够帮你解决成绩排序 C++多排序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复