前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【牛客网】[编程题]成绩排序

【牛客网】[编程题]成绩排序

作者头像
韩旭051
发布2019-11-07 23:08:27
7230
发布2019-11-07 23:08:27
举报
文章被收录于专栏:刷题笔记刷题笔记

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/shiliang97/article/details/102568379

查找和排序

题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩 都按先录入排列在前的规则处理。

示例: jack 70 peter 96 Tom 70 smith 67

从高到低 成绩 peter 96 jack 70 Tom 70 smith 67

从低到高

smith 67

jack 70 Tom 70 peter 96

输入描述:

代码语言:javascript
复制

输入多行,先输入要排序的人的个数,然后输入排序方法0(降序)或者1(升序)再分别输入他们的名字和成绩,以一个空格隔开

输出描述:

按照指定方式输出名字和成绩,名字和成绩之间以一个空格隔开

示例1

输入

代码语言:javascript
复制
3
0
fang 90
yang 50
ning 70

输出

代码语言:javascript
复制
fang 90
ning 70
yang 50

感觉好坑啊,也没人说要永远循环下去呀~· 可能是我读题脑子有问题

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47

#include #include #include using namespace std; struct stu{ int num; int score; string name; }; bool cm1(stu s1,stu s2){ if(s1.score!=s2.score){ return s1.score<s2.score; }return s1.num<s2.num; } bool cm0(stu s1,stu s2){ if(s1.score!=s2.score){ return s1.score>s2.score; }return s1.num<s2.num; } int main(){ int a,b; while(cin>>a>>b){ vector v; stu st; string name; int score; for(int i=0;i<a;i++){ cin>>name>>score; st.name=name; st.score=score; st.num=i; v.push_back(st); } if(b==0){ sort(v.begin(),v.end(),cm0); }else{ sort(v.begin(),v.end(),cm1); } for(int i=0;i<v.size();i++){ //cout<<v[i].name<<" "<<v[i].score<<endl; printf("%s %d\n",v[i].name.c_str(),v[i].score); } } return 0; }

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-10-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 输入
  • 输出
    • 感觉好坑啊,也没人说要永远循环下去呀~· 可能是我读题脑子有问题
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档