题解 | 成绩排序
成绩排序
https://www.nowcoder.com/practice/0383714a1bb749499050d2e0610418b1
#include <stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
struct Student{
int id;
char name[20];
int score;
};
bool compare_sort0(Student lhs,Student rhs){
if(lhs.score>rhs.score){
return true;
}else if(lhs.score==rhs.score&&lhs.id<rhs.id){
return true;
}else{
return false;
}
}
bool compare_sort1(Student lhs,Student rhs){
if(lhs.score<rhs.score){
return true;
}else if(lhs.score==rhs.score&&lhs.id<rhs.id){
return true;
}else{
return false;
}
}
//int main() {
// int n;
// scanf("%d",&n);
// vector<Student> vec(n);
// int flag;
// scanf("%d",&flag);
// for(int i=0;i<n;++i){
// scanf("%s%d",&vec[i].name,&vec[i].score);
// vec[i].id=i;
// }
// if(flag==0){
// sort(vec.begin(),vec.end(), compare_sort0);
// }
// if(flag==1){
// sort(vec.begin(),vec.end(), compare_sort1);
// }
//
// for(int i=0;i<n;++i){
// printf("%s %d\n",vec[i].name,vec[i].score);
// }
// return 0;
//}
int main(){
int n;
while(scanf("%d",&n)!=EOF){
vector<Student> vec(n);
int flag;
scanf("%d",&flag);
for(int i=0;i<n;++i){
scanf("%s%d",&vec[i].name,&vec[i].score);
vec[i].id=i;
}
if(flag==0){
sort(vec.begin(),vec.end(), compare_sort0);
}
if(flag==1){
sort(vec.begin(),vec.end(), compare_sort1);
}
for(int i=0;i<n;++i){
printf("%s %d\n",vec[i].name,vec[i].score);
}
}
return 0;
}
#C++刷题#
