一道排序水题
看题目戳这
#include<bits/stdc++.h>
using namespace std;
struct node{
char name[10],id[10];
int sco;
}p[100005];
bool cmp1(node x,node y){
return strcmp(x.id,y.id)<0;
}
bool cmp2(node x,node y){
if(strcmp(x.name,y.name)!=0){
return strcmp(x.name,y.name)<0;
}else {
return strcmp(x.id,y.id)<0;
}
}
bool cmp3(node x,node y){
if(x.sco!=y.sco){
return x.sco<y.sco;
}else {
return strcmp(x.id,y.id)<0;
}
}
int main(){
int n,op,sco;
char id[10],name[10];
scanf("%d%d",&n,&op);
getchar();
for(int i=0;i<n;i++){
scanf("%s%s%d",p[i].id,p[i].name,&p[i].sco);
}
if(op==1){
sort(p,p+n,cmp1);
}else if(op==2){
sort(p,p+n,cmp2);
}else if(op==3){
sort(p,p+n,cmp3);
}
for(int i=0;i<n;i++){
printf("%s %s %d\n",p[i].id,p[i].name,p[i].sco);
}
return 0;
}