题解 | #成绩排序#

成绩排序

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);

        }

    }

}

全部评论

相关推荐

黑皮白袜臭脚体育生:简历统一按使用了什么技术实现了什么功能解决了什么问题或提升了什么性能指标来写会更好另外宣传下自己的开源仿b站微服务项目,GitHub已经410star,牛客上有完整文档教程,如果觉得有帮助的话可以点个小星星,蟹蟹
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务