题解 | #成绩排序#

成绩排序

https://www.nowcoder.com/practice/0383714a1bb749499050d2e0610418b1

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

struct stu1{//升序
    string name;
    int score;
    int i;//录入先后顺序
    bool operator< (const stu1 &t) const{
        if(t.score==score) return i<t.i;
        else return score<t.score;
    }
};
struct stu0{//降序
    string name;
    int score;
    int i;//录入先后顺序
    bool operator< (const stu0 &t) const{
        if(t.score==score) return i<t.i;
        else return score>t.score;
    }
};
int main() {
    int n;
    while(cin>>n){
        int k;
        cin>>k;
        if(k==1){
            stu1 *a=new stu1[n];
            for(int i=0;i<n;i++) {
                cin>>a[i].name>>a[i].score;
                a[i].i=i;
            }
            sort(a,a+n);
            for(int i=0;i<n;i++) cout<<a[i].name<<" "<<a[i].score<<endl;
        }else{
            stu0 *b=new stu0[n];
            for(int i=0;i<n;i++) {
                cin>>b[i].name>>b[i].score;
                b[i].i=i;
            }
            sort(b,b+n);
            for(int i=0;i<n;i++) cout<<b[i].name<<" "<<b[i].score<<endl;
        }
    }
    return 0;
}

全部评论

相关推荐

06-07 19:59
门头沟学院 C++
点赞 评论 收藏
分享
求offer的大角牛:不吃香菜
点赞 评论 收藏
分享
“校招”、“3-5年经验”
xiaolihuamao:逆向工程不是搞外挂的吗,好像现在大学生坐牢最多的就是诈骗罪和非法侵入计算机系统罪,发美金,还居家办公,就是怕被一锅端,
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务