快速排序

#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即可
全部评论

相关推荐

屋顶的闪闪星光:建议正浩: 1、走私企路线,第一家待遇越高,后面跳槽时薪资也就越高,因为社招跳槽时HR谈薪要参考前东家的薪资情况。即使深圳消费高,但把月薪base给拉起来特别重要,而且,再怎么也没有6K这么大的差别。 2、深圳就业机会更多,干两年跳槽时,选择面更大。 3、工作强度建议放到相对次要的位置,因为这个事只要走私企路线就避免不了,游戏领域的强度一点也不低。 再有问题私信详细交流
offer帮选
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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