#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
#define maxn 100010
struct Student{
int id;
char name[10];
int grade;
}stu[maxn];
bool cmp1(Student a,Student b)
{
return a.id<b.id;
}
bool cmp2(Student a,Student b)
{
if(strcmp(a.name,b.name)!=0)
return strcmp(a.name,b.name)<0;
else
return a.id<b.id;
}
bool cmp3(Student a,Student b)
{
if(a.grade!=b.grade)
return a.grade<b.grade;
else
return a.id<b.id;
}
int main()
{
int n,c;
scanf("%d %d",&n,&c);
for(int i=0;i<n;i++)
{
scanf("%d %s %d",&stu[i].id,stu[i].name,&stu[i].grade);
}
if(c==1)
{
sort(stu,stu+n,cmp1);
}
else if(c==2)
{
sort(stu,stu+n,cmp2);
}
else if(c==3)
{
sort(stu,stu+n,cmp3);
}
for(int i=0;i<n;i++)
{
printf("%06d %s %d\n",stu[i].id,stu[i].name,stu[i].grade);
}
return 0;
}
值得注意
char类型数组比较相等strcmp()==0
还有sort格式(stu,stu+n,cmp)