c++sort

c++sort,第1张

c++sort 如何实现多关键字排序,以及如何升序排序降序排序 

#include 
#include 

typedef struct STU
{
    int n;
    int c;
    int m;
    int e;
    int s;
}stu;

using namespace std;


bool cmp(stu a,stu b)
{
    //第一关键字相同,按第二关键字排序
    if(a.s==b.s)
    {
        //第二关键字相同,按第三关键字排序
        if(a.c == b.c)
        {
            return a.n b.c;
    }
    //降序排序
    else    return a.s > b.s;
    //      return a.s < b.s;//升序排序
}

int main()
{
    stu a[310];
    int n;cin>>n;
    for(int i = 1; i <= n ; i ++ )
    {
        scanf("%d%d%d",&a[i].c,&a[i].m,&a[i].e);
        a[i].n = i;
        a[i].s = a[i].c + a[i].m + a[i].e;
    }
    sort(a+1,a+n+1,cmp);
    for(int i = 1; i <=5; i ++ )    printf("%d %d\n",a[i].n,a[i].s);
    
    return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1329769.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-12
下一篇 2022-06-12

发表评论

登录后才能评论

评论列表(0条)

保存