九度1023:EXCEL排序 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    分别写cmp函数即可,

九度1023:EXCEL排序

    #include

#include

    #include

    using namespace std;

    struct E{

    char number[10];

    char name[10];

    int score;

    }buf[100000+10];

    bool cmp1(E a,E b){

    int tmp=strcmp(a.number,b.number);

    if(tmp!=0) return tmp<0;

    }

    bool cmp2(E a,E b){

    int tmp1=strcmp(a.name,b.name);

    if(tmp1!=0) return tmp1<0;

    else {

    int tmp2=strcmp(a.number,b.number);

    if(tmp2!=0) return tmp2<0;

    }

    }

    bool cmp3(E a,E b){

    if(a.score!=b.score) return a.scoreelse {

    int tmp=strcmp(a.number,b.number);

    if(tmp!=0) return tmp<0;

    }

    }

    int main()

    {

    int n,m,i;

    int count=1;

    while(scanf(%d %d,&n,&m)!=EOF)

    {

    if(n==0&&m==0) break;

    for(i=0;i

    {

    scanf(%s %s %d,buf[i].number,buf[i].name,&buf[i].score);

    }

    if(m==1)

    {

    sort(buf,buf+n,cmp1);

    printf(Case %d: ,count++);

    for(i=0;i

    {

    printf(%s %s %d ,buf[i].number,buf[i].name,buf[i].score);

    }

    }

    if(m==2)

    {

    sort(buf,buf+n,cmp2);

    printf(Case %d: ,count++);

    for(i=0;i

    {

    printf(%s %s %d ,buf[i].number,buf[i].name,buf[i].score);

    }

    }

    if(m==3)

    {

    sort(buf,buf+n,cmp3);

    printf(Case %d: ,count++);

    for(i=0;i

    {

    printf(%s %s %d ,buf[i].number,buf[i].name,buf[i].score);

    }

    }

    }

    return 0;

    }

   

   

   

   

   

最新文章