竞赛讨论区 > 快速排序
头像
是朱瑞啊
发布于 2020-04-21 14:48
+ 关注

快速排序

#include <stdio.h>
typedef struct student{
    int id,a,b,c,all;
}Stu;
int cmp(const void *a,const void *b)
{
    Stu *p1=(Stu*)a,*p2=(Stu*)b;
    if(p1->all!=p2->all)
    {
        return -(p1->all-p2->all);
    }else
    {
        if(p1->a!=p2->a)
            return -(p1->a-p2->a);
        else
        {
            return p1->id-p2->id;
        }
    }
}
int main()
{
    Stu stu[301];
    int i,n;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d%d%d",&stu[i].a,&stu[i].b,&stu[i].c);
        stu[i].id=i+1;
        stu[i].all=stu[i].a+stu[i].b+stu[i].c;
    }
    qsort(stu,n,sizeof(Stu),cmp);
    for(i=0;i<5;i++)
    {
        printf("%d %d\n",stu[i].id,stu[i].all);
    }
}
自带的快排,改cmp即可

全部评论

(0) 回帖
加载中...
话题 回帖

本文相关内容

等你来战

查看全部

热门推荐