题解 | #成绩排序#

成绩排序

https://www.nowcoder.com/practice/0383714a1bb749499050d2e0610418b1?tpId=40&tqId=21333&tPage=1&rp=1&ru=/ta/kaoyan&qru=/ta/kaoyan/question-ranking

#include <iostream>
#include <cstdio>
#include "string"
#include "algorithm" //一般机试都用 库里的 sort,重点调compare交换条件
using namespace std;
typedef struct list {
    char name[10];
    int grade;
    int seq = 0;
} list;
bool compare1(list lhs, list rhs) { //用来升序的comapre
    if (lhs.grade < rhs.grade) {
        return true;
    } else if (lhs.grade == rhs.grade && lhs.seq < rhs.seq)
        return true;
    else
        return false;

}
bool compare2(list lhs, list rhs) { //用来降序的comapre
    if (lhs.grade > rhs.grade) {
        return true;
    } else if (lhs.grade == rhs.grade && lhs.seq < rhs.seq)
        return true;
    else
        return false;

}



int main() {
    int peopleNum = 0;
    int method = 0; //0是降序,1是升序

    while (scanf("%d", &peopleNum) != EOF) {
        scanf("%d", &method);
        list StuGrade[peopleNum];
        for (int i = 0; i < peopleNum; i++) {
            scanf("%s %d", &StuGrade[i].name, &StuGrade[i].grade);
            StuGrade[i].seq = i;
        }

        if (method == 1) {//升序
            sort(StuGrade, StuGrade + peopleNum, compare1);
        } else { //降序
            sort(StuGrade, StuGrade + peopleNum, compare2);
        }

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

全部评论

相关推荐

爱看电影的杨桃allin春招:我感觉你在炫耀
点赞 评论 收藏
分享
Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务