题解 | #成绩排序#

成绩排序

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

        }

    }

}

全部评论

相关推荐

威猛的小饼干正在背八股:挂到根本不想整理
点赞 评论 收藏
分享
伟大的烤冷面被普调:暨大✌🏻就是强
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务