题解 | #成绩排序#
成绩排序
https://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b
#include <algorithm> #include <iostream> #include <string> #include<vector> #include<stdlib.h> using namespace std; struct Score{ string name; int sc; }; bool cmp1(const Score &a,const Score &b){ return a.sc>b.sc?true:false; } bool cmp2(const Score &a,const Score &b){ return b.sc>a.sc?true:false; } int main() { int n,m,i,y; string x; cin>>n>>m; vector<Score> T(n); for(i=0;i<n;i++){ cin>>x>>y; T[i].name=x; T[i].sc=y; } if(m==1) stable_sort(T.begin(),T.end(),cmp2); else stable_sort(T.begin(),T.end(),cmp1); for(i=0;i<n;i++){ cout<<T[i].name<<' '<<T[i].sc<<endl; } } // 64 位输出请用 printf("%lld")
哭哭!睡觉!原来cmp要用bool不能int啊