G-EXCEL排序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<math.h>
using namespace std;
struct haha{
    char num[100];
    char name[100];
    int score;
}a[100002];
bool cmp1 (haha x1,haha x2){
   int t;
   t=strcmp(x1.num,x2.num);
   if(t<0)
    return 1;
    else
        return 0;
}
bool cmp2 (haha x1,haha x2){
   int t;
   t=strcmp(x1.name,x2.name);
   if(t==0)
   {
       int p=strcmp(x1.num,x2.num);
       {
           if(p<0)
            return 1;
       }
   }
   else if(t<0)
   {
       return 1;

   }
   return 0;
}
bool cmp3(haha x1,haha x2){
    if(x1.score==x2.score)
    {
        int p=strcmp(x1.num,x2.num);
        return p<0;
    }
    else
    {
        return x1.score<x2.score;
    }
}
int main()
{
    int n,c,m;
    m=0;
    while(cin>>n>>c){
        if(n==0)
            break;
            m++;
        for(int i=0;i<n;i++)
        {
            cin>>a[i].num>>a[i].name>>a[i].score;
        }
        if(c==1)
        {
            sort(a,a+n,cmp1);
        }
        if(c==2)
        {
            sort(a,a+n,cmp2);
        }
        if(c==3)
        {
            sort(a,a+n,cmp3);
        }
        cout<<"Case"<<' '<<m<<':'<<endl;
        for(int i=0;i<n;i++)
        {
            cout<<a[i].num<<' '<<a[i].name<<' '<<a[i].score<<endl;
        }

    }

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值