文章

16

粉丝

44

获赞

2

访问

4.5k

头像
成绩排序 题解:数据率百分66时,检查while(cin>>n)
P1151 清华大学上机题
发布于2024年3月10日 17:10
阅读数 288

#include <bits/stdc++.h>
using namespace std;
struct student{
    string name;
    int score;
};
bool Cmpdesc(student a,student b){//降序排序
    return a.score>b.score;
}
bool Cmpasc(student a,student b){//升序排序
    return a.score<b.score;
}
int main(){
    int n,m;//n代表输入数据数,m代表升降序选择
    while(cin>>n){
        cin>>m;
        student stu[1000];
        for(int i=0;i<n;i++){
            cin>>stu[i].name>>stu[i].score;
        }
        if(m==0){//降序
            stable_sort(stu,stu+n,Cmpdesc);
        }else{//升序
            stable_sort(stu,stu+n,Cmpasc);
        }
        for(int i=0;i<n;i++){
            cout<<stu[i].name<<" "<<stu[i].score<<endl;
        }
        
    }
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发