作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

题目描述:

查找和排序

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

例示:
jack      70
peter     96
Tom       70
smith     67

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

从低到高

smith     67

jack      70

Tom       70

peter     96

注:0代表从高到低,1代表从低到高

本题含有多组输入数据!

输入描述:

输入多行,先输入要排序的人的个数,然后分别输入他们的名字和成绩,以一个空格隔开

输出描述:

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

示例:

输入:

3
0
fang 90
yang 50
ning 70

输出:

fang 90
ning 70
yang 50

解题思路:

本题是排序题。用vector容器存放学生信息,pair的第一个参数为学生名字,第二个参数为学生分数;用stable_sort对容器排序,自定义排序算法,比较pair的second,也就是比较分数;之后输出student容器内容,完成。

之所以用stable_sort是因为它更稳定,基于归并排序实现,而sort是基于快速排序;stable_sort在处理相同值时不会改变其原本的相对位置,正好符合题意。

测试代码:

#include <iostream>
#include <algorithm>
#include <vector>using namespace std;int main()
{int number;int flag;while(cin>>number>>flag){vector<pair<string,int>> student;for(int i=0;i<number;++i){pair<string,int> temp;cin>>temp.first;cin>>temp.second;student.push_back(temp);}if(flag){stable_sort(student.begin(),student.end(), [](const pair<string,int>& v1, const pair<string,int>& v2){return v1.second < v2.second;});}else{stable_sort(student.begin(),student.end(), [](const pair<string,int>& v1, const pair<string,int>& v2){return v1.second > v2.second;});}for(auto it=student.begin();it!=student.end();++it){cout<<(*it).first<<" "<<(*it).second<<endl;}}return 0;
}

华为机试HJ68:成绩排序相关推荐

  1. 清华大学计算机考研机试KY2 成绩排序

    题目 描述 查找和排序题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩 都按先录入排列在前的规则处理.示例: jack 70 peter 96 Tom 70 smith ...

  2. 华为机试——五分制成绩:break和continue的区分

    五分制成绩 描述:    对于一个给定的百分制成绩,输出相应的五分制成绩.设:90分及以上为'A'.80-89分为'B',70-79分为'C',60-69分为'D',60分一下为'E',不合法的输入, ...

  3. 集合篇10.华为机试(涮题记录2)

    华为机试 31.成绩排序(**not) 32. 矩阵乘法 33. 24点游戏算法(not) 34.配置文件恢复 35. 查找两个字符串a.b中的最长公共子串 36.MP3光标位置(not) 37.DN ...

  4. [华为机试真题][2014]62.去除重复字符并排序

    题目 描述: 去除重复字符并排序 运行时间限制: 无限制 内容限制: 无限制 输入: 字符串 输出: 去除重复字符并排序的字符串 样例输入: aabcdefff 样例输出: abcdef 代码 /*- ...

  5. 华为机试108题(C 语言解答)

    Nowcoder题库链接:华为机试 HJ1 字符串最后一个单词的长度(字符串) 输入:hello nowcoder输出:8说明: 最后一个单词为nowcoder,长度为8 示例代码: HJ1.c #i ...

  6. (python)牛客网(华为机试四)——较难

    本博客为博主解题的部分记录,由于均为自己写的,所以答案并非最优解,有很多地方可以优化. 其他题解合集: (python)牛客网(华为机试一)--入门 (python)牛客网(华为机试二)--简单 (p ...

  7. 【华为机试 Python实现】华为机试题集合(已更新171篇)

    文章目录 新手指引 数据结构基础 华为机试真题系列 牛客网华为机试系列 Python 八股文系列 <华为机试真题详解>专栏定价99.9 包含 <华为机试真题>的所有题目. 包含 ...

  8. 【强烈推荐收藏】坚持3个月爆肝华为机试108题C++全解(适合新手入门,就业必刷套题)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 前言 金九银十,金三银四.当前正处于校招.社招的火热期,之前就想为正在筹备就业的同学们准备刷题宝 ...

  9. 【华为机试真题Java】从入门到入职-真题列表导读

    写在前面 本专栏有100+道题(持续更新中),都是往期的HW机试真题,根据过往同学的经验基本都会考到原题.大家有什么不懂的都可以留言. 华为机试有三道题目,第一道和第二道属于简单或中等题,分值为100 ...

最新文章

  1. js 获取样式兼容方法
  2. mysql pdo使用存储过程_PDO调用存储过程的问题
  3. 把数字翻译成字符串python_46 把数字翻译成字符串
  4. 清华本硕男,月入5W征婚引群嘲“普通却自信”!本人回应了……
  5. (3)websocket实现单聊和群聊
  6. 在stm32上使用Arduino IDE(神舟I号为例)
  7. bzoj1088[SCOI2005]扫雷Mine
  8. mysql移动文件后打不开_Windows端MySQL data目录迁移(貌似会启动不了)
  9. 爬虫requests高阶篇详细教程
  10. 10099 The Tourist Guide
  11. vuedraggable能实现自由拖拽功能吗?_基于 vue.js 仿禅道主页拖拽效果
  12. java(14) - HashMap类
  13. 吴恩达神经网络和深度学习-学习笔记-44-anchor box
  14. linux+echo+权限不够,解决linux echo命令以及linux echo命令提示权限不够的方法
  15. Handheld Group推出Algiz平板,内置RFID读取器
  16. 抖音扫码跳转QQ群等外链源代码分享
  17. 我们能为别人留下什么?——纪念一位真正的兄长
  18. Dapper大规模分布式系统问题跟踪系统
  19. 《江城子·乙卯正月二十日夜记梦》古词鉴赏
  20. Neural-Motifs 运行环境配置

热门文章

  1. 用Intellij Idea创建一个普通的Java工程并用JDBC连接数据库
  2. 锋利的JQuery —— 事件和动画
  3. 对事件循环的一点理解
  4. Vant - 高效的 Vue 组件库,再造一个有赞移动商城也不在话下
  5. SSH 无法远程登录问题的处理思路
  6. 【免费毕设】PHP课程网站络管理系统(源代码+论文)
  7. java file 方法_JAVA中File的常用方法
  8. gerber文件_90%的工程师容易忽视(一):PCB输出gerber文件,这样操作才正确
  9. php的布局设计,php学习之div+css布局设计排版(六)
  10. java构建大根堆_构建大根堆