當你猶豫要不要去做一件事的時候,其實你內心已經有了選擇,只是你還沒有充足的理由去說服自己。
這個題可謂是將結構體,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;
}