题意:c==1就比id,升序输出,如果c==2,就比名字,升序输出,如果c==3,就比成绩,升序输出,如果同名,同成绩就采用c==1的情况;
代码:
#include<iostream>
#include<algorithm>
using namespace std;
struct student{
string num;
string name;
int grade;
}s[100001];
int c;
bool cmp(student a,student b){
if(c==1||a.name==b.name||a.grade==b.grade){
return a.num<b.num;
}else if(c==2){
return a.name<b.name;
}else if(c==3){
return a.grade<b.grade;
}
}
int main(){
int n;
cin>>n>>c;
for(int i=0;i<n;i++){
cin>>s[i].num>>s[i].name>>s[i].grade;
}
sort(s,s+n,cmp);
for(int i=0;i<n;i++){
cout<<s[i].num<<" "<<s[i].name<<" "<<s[i].grade<<endl;
}
return 0;
}