题解 | #成绩排序#

成绩排序

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

#include "stdio.h"

#include "algorithm"

#include "string"

using namespace std;

struct Student{

    char name[20];

    int grade;

    int count;//录入顺序

};

bool comp1(Student lhs,Student rhs){//降序

        if (lhs.grade>rhs.grade)

            return true;

        else if (lhs.grade==rhs.grade && lhs.count<rhs.count)

            return true;

        else

            return false;

}

bool comp2(Student lhs,Student rhs){//升序

    if (lhs.grade<rhs.grade)

        return true;

    else if (lhs.grade==rhs.grade && lhs.count<rhs.count)

        return true;

    else

        return false;

}

int main(){

    int n;

    int flag;//flag:0为降序,1为升序

    Student stu[1000];

    while (scanf("%d %d",&n,&flag)!=EOF){

        for (int i = 0; i < n; ++i) {

            scanf("%s %d",stu[i].name,&stu[i].grade);

            stu[i].count=i;

        }

        if(flag==0)

            sort(stu,stu+n, comp1);

        else

            sort(stu,stu+n, comp2);

        for (int i = 0; i < n; ++i) {

            printf("%s %d\n",stu[i].name,stu[i].grade);

        }

    }

}

全部评论

相关推荐

2025-12-14 11:43
黑龙江大学 Java
用微笑面对困难:确实比较烂,可以这么修改:加上大学的qs排名,然后大学简介要写一些,然后硕士大学加大加粗,科研经历第一句话都写上在复旦大学时,主要负责xxxx,简历左上角把学校logo写上,建议用复旦大学的简历模板
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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