题解 | 成绩排序
成绩排序
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++刷题#