题解 | #归并排序#

成绩排序

http://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b

qsort
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct{
    int index;
    char name[20];
    int grade;
} Na;

int myCompareH2L(const void *item1, const void *item2)
{
    Na *p1 = (Na *) item1, *p2 = (Na *) item2;
    if(p1->grade != p2->grade){
        return p2->grade - p1->grade;
    }
    else{
        return p1->index - p2->index;
    }
}

int myCompareL2H(const void *item1, const void *item2)
{
    Na *p1 = (Na *) item1, *p2 = (Na *) item2;
    if(p1->grade != p2->grade){
        return p1->grade - p2->grade;
    }
    else{
        return p1->index - p2->index;
    }
}

int main()
{
    int num, k;
    while(scanf("%d%d", &num, &k) != EOF){
        Na Name_list[num];
        int i;
        for(i = 0; i < num; i++){
            scanf("%s", Name_list[i].name);
            scanf("%d", &Name_list[i].grade);
            Name_list[i].index = i;
        }
        if(k == 0){
            qsort(Name_list, num, sizeof(Na), myCompareH2L);
        }
        else if(k == 1){
            qsort(Name_list, num, sizeof(Na), myCompareL2H);
        }
        for(i = 0; i < num; i++){
            printf("%s %d\n", Name_list[i].name, Name_list[i].grade);
        }
    }
}


全部评论

相关推荐

06-25 09:33
厦门大学 Java
程序员饺子:现在日常估计没啥hc了,等到八月多估计就慢慢有了。双九✌🏻不用焦虑的
投递快手等公司9个岗位
点赞 评论 收藏
分享
醉蟀:你不干有的是人干
点赞 评论 收藏
分享
评论
8
1
分享

创作者周榜

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