题解 | #成绩排序#

成绩排序

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

#include <cstdio>
#include <algorithm>
using namespace std;
struct student{
    char name[100];
    int grade;
    int order;
};
//降序条件
bool comp1(student lsh, student rsh){
    if(lsh.grade<rsh.grade){
        return true;
    }
    else if(lsh.grade==rsh.grade&&lsh.order<rsh.order)
        return true;
    else
        return false;
}
bool comp2(student lsh, student rsh){
    if(lsh.grade>rsh.grade){
        return true;
    }
    else if(lsh.grade==rsh.grade&&lsh.order<rsh.order)
        return true;
    else
        return false;
}
int main(){
    int people;
    int method;
    while(scanf("%d%d",&people,&method)!=EOF){
    student stu[people];
    for(int i=0;i<people;i++){
        scanf("%s%d",&stu[i].name,&stu[i].grade);
        stu[i].order=i;
    }
    if(method==1){
        sort(stu,stu+people,comp1);
    }
    else if(method==0){
        sort(stu, stu + people,comp2);
    }
    for(int i=0;i<people;i++) {
        printf("%s %d\n", stu[i].name,stu[i].grade);
    }
    }
}

全部评论

相关推荐

totoroyyw:千年老妖😂
投递华为等公司10个岗位
点赞 评论 收藏
分享
11-14 16:13
已编辑
重庆科技大学 测试工程师
Amazarashi66:不进帖子我都知道🐮❤️网什么含金量
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务