题解 | #成绩排序#

成绩排序

https://www.nowcoder.com/practice/7a2f7d304d9e43b1bb2a6e72ed65bf51

#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;

struct student
{
    string name;
    int age;
    int score;
};

bool func(student a,student b)
{
    if(a.score!=b.score)return a.score<b.score;
    else if(a.name!=b.name)return a.name<b.name;
    else return a.age<b.age;
}

void Myprint(student s)
{
    cout<<s.name<<" "<<s.age<<" "<<s.score<<endl;
}

int main() {
    int n;
    student s;
    while(cin>>n)
    {
        vector<student>v;
        for(int i=0;i<n;i++)
        {
            cin>>s.name;
            cin>>s.age;
            cin>>s.score;
            v.push_back(s);
        }
        sort(v.begin(),v.end(),func);
        for_each(v.begin(),v.end(),Myprint);
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

预计下个星期就能开奖吧,哪位老哥来给个准信
华孝子爱信等:对接人上周说的是这周
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务