Run ID:45407

提交时间:2023-03-24 14:52:09

#include <iostream> using namespace std; const int N=305; int n; struct Student{ string name; int sum; }stu[N]; bool cmp(Student a, Student b){ //如果a的排名在b的前面,返回true //或者可以理解为:从小到大排序 ,cmp定义小于的含义 if(a.sum == b.sum){ return a.name < b.name; } else return a.sum > b.sum; } int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>stu[i].name>>stu[i].sum; } for(int i=1;i<n;i++){ int minn = i; for(int j=i+1;j<=n;j++){ if(cmp(stu[j],stu[minn])){ minn = j; } } swap(stu[minn],stu[i]); } for(int i=1;i<=n;i++){ cout<<stu[i].name<<' '<<stu[i].sum<<endl; } return 0; }