EXCEL排序---題解

當你猶豫要不要去做一件事的時候,其實你內心已經有了選擇,只是你還沒有充足的理由去說服自己。

這個題可謂是將結構體,sort函數用到極致了;寫下來以後複習用;

在這裏插入圖片描述

題目鏈接:
EXCEL排序

AC代碼:

#include<bits/stdc++.h>
using namespace std;
struct stu{
    int stunum,score;
    char name[10];
};
struct stu students[100005];
bool cmp1(struct stu a,struct stu b)
{
    return a.stunum<b.stunum;
}
bool cmp2(struct stu a,struct stu b)
{
    if(strcmp(a.name,b.name)!=0)
        return strcmp(a.name,b.name)<0;
    else
        return a.stunum<b.stunum;
}
bool cmp3(struct stu a,struct stu b)
{
    if(a.score!=b.score)
        return a.score<b.score;
    else
        return a.stunum<b.stunum;
}
int main()
{
    int n=-1,flag,index=0;
    while (~scanf("%d%d",&n,&flag)&&n!=0)
    {
        for(int i=0;i<n;i++)
        {
            scanf("%d%s%d",&students[i].stunum,students[i].name,&students[i].score);
        }
        index++;
        if(flag==1)
            sort(students,students+n,cmp1);
        else if(flag==2)
            sort(students,students+n,cmp2);
        else
            sort(students,students+n,cmp3);
        cout<<"Case"<<" "<<index<<":"<<endl;
        for(int i=0;i<n;i++)
            printf("%06d %s %d\n",students[i].stunum,students[i].name,students[i].score);
    }
    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章