题解 | 成绩排序

成绩排序

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


#include <stdio.h>
#include<vector>
#include<algorithm>
using namespace std;

struct Student{
    int id;
    char name[20];
    int score;
};

bool compare_sort0(Student lhs,Student rhs){
    if(lhs.score>rhs.score){
        return true;
    }else if(lhs.score==rhs.score&&lhs.id<rhs.id){
        return true;
    }else{
        return false;
    }
}
bool compare_sort1(Student lhs,Student rhs){
    if(lhs.score<rhs.score){
        return true;
    }else if(lhs.score==rhs.score&&lhs.id<rhs.id){
        return true;
    }else{
        return false;
    }
}
//int main() {
//    int n;
//    scanf("%d",&n);
//    vector<Student>  vec(n);
//    int flag;
//    scanf("%d",&flag);
//    for(int i=0;i<n;++i){
//        scanf("%s%d",&vec[i].name,&vec[i].score);
//        vec[i].id=i;
//    }
//    if(flag==0){
//        sort(vec.begin(),vec.end(), compare_sort0);
//    }
//    if(flag==1){
//        sort(vec.begin(),vec.end(), compare_sort1);
//    }
//
//    for(int i=0;i<n;++i){
//        printf("%s %d\n",vec[i].name,vec[i].score);
//    }
//    return 0;
//}
int main(){
    int n;
    while(scanf("%d",&n)!=EOF){
        vector<Student>  vec(n);
        int flag;
        scanf("%d",&flag);
        for(int i=0;i<n;++i){
            scanf("%s%d",&vec[i].name,&vec[i].score);
            vec[i].id=i;
        }
        if(flag==0){
            sort(vec.begin(),vec.end(), compare_sort0);
        }
        if(flag==1){
            sort(vec.begin(),vec.end(), compare_sort1);
        }

        for(int i=0;i<n;++i){
            printf("%s %d\n",vec[i].name,vec[i].score);
        }
    }
    return 0;
}

#C++刷题#
全部评论

相关推荐

迟缓的斜杠青年巴比Q了:简历被投过的公司卖出去了,我前两天遇到过更离谱的,打电话来问我有没有意向报班学Java学习,服了,还拿我学校一个学长在他们那报班学了之后干了华为OD当招牌
点赞 评论 收藏
分享
那一天的Java_Java起来:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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