我是靠谱客的博主 热心手套,最近开发中收集的这篇文章主要介绍成绩排序 C++多排序,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

有 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++多排序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部