题解 | #成绩排序#

成绩排序

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

#include <stdio.h>
#include <stdlib.h>
struct Stu{
    char name[20];
    int score;
    int num;
}stu[100];

int cmp1(struct Stu *a,struct Stu *b){
    if(a->score==b->score){
        return a->num-b->num;
    }
    else{
        return a->score-b->score;
    }
}

int cmp2(struct Stu *a,struct Stu *b){
    if(a->score==b->score){
        return a->num-b->num;
    }
    else{
        return b->score-a->score;
    }
}

int main() {
    int num,method;
    while(scanf("%d\n%d",&num,&method)!=EOF){
        for(int i=0;i<num;i++){
            scanf("%s %d",stu[i].name,&stu[i].score);
            stu[i].num=i;
        }
        if(method){
            qsort(stu,num,sizeof(stu[0]),cmp1);
        }
        else{
            qsort(stu,num,sizeof(stu[0]),cmp2);
        }
        for(int i=0;i<num;i++){
            printf("%s %d\n",stu[i].name,stu[i].score);
        }
    }
    return 0;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
04-22 18:57
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务