最小年龄的职员
来源:互联网 发布:太极越狱网络异常 编辑:程序博客网 时间:2024/04/28 22:07
题目描述:
职工有职工号,姓名,年龄.输入n个职工的信息,找出3个年龄最小的职工打印出来。
输入描述:
输入第一行包括1个整数N,1<=N<=30,代表输入数据的个数。
接下来的N行有N个职工的信息:
包括职工号(整数), 姓名(字符串,长度不超过10), 年龄(1<=age<=100)
输出描述:
可能有多组测试数据,对于每组数据,
输出结果行数为N和3的较小值,分别为年龄最小的职工的信息。
关键字顺序:年龄>工号>姓名,从小到大
个人思路分析:
定义一个职工结构体变量;
利用模板定义一个存储职工信息的顺序表;
输入之后;对输入信息进行条件排序(利用C++库函数算法中的void sort(RandomAccessIterator first,RandomAccessIterator last,Compare comp);)comp接受的是一个接受范围中的两个元素作为参数的二进制函数,并返回可转换为的值bool。返回的值指示作为第一个参数传递的元素是否被视为在第二个定义的特定严格弱排序之前。
因此我们只需定义一个这样的comp函数,便可以实现按照关键字顺序进行排序。
下面是代码实现:
#include<iostream>#include<algorithm>#include<vector>#include<string>using namespace std;typedef struct worker //职工结构体{ int number; string name; int age;}worker;static bool cmp(worker a, worker b){ if (a.age < b.age) { return true; } else if (a.age == b.age) { if (a.number < b.number) { return true; } else if (a.number == b.number) { if (a.name < b.name) { return true; } } } return false;}int main(){ int n; vector<worker> vet; worker x; while (cin >> n) { for (int i = 0; i < n; i++) { cin >> x.number >> x.name >> x.age; vet.push_back(x); } sort(vet.begin(), vet.end(), cmp); for (int i = 0; i < 3; i++) { cout << vet[i].number << " " << vet[i].name << " " << vet[i].age; cout << endl; } }}
3 1
- 最小年龄的职员
- 最小年龄的三个职工
- 最小年龄的3个职工
- 1187 最小年龄的3个职工
- 数据结构实训一最小年龄
- 我是怎样培养全世界年龄最小网民的!
- 【九度】题目1187:最小年龄的3个职工
- 题目1187:最小年龄的3个职工
- 题目1187:最小年龄的3个职工
- 题目1187:最小年龄的3个职工
- 题目1187:最小年龄的3个职工
- 题目1187:最小年龄的3个职工
- 最小年龄的三个职工(结构体三级排序)
- 题目1187:最小年龄的3个职工
- 最小年龄的3个职工(解题报告)
- 1181: 谁的年龄最小(结构体专题)
- 【九度OJ】1187:最小年龄的3个职工
- 职员的四个境界
- 将数据放入到session域中,还是访问的时候一直使用request进行访问数据库
- Mac下Jupyter(即IPython-notebook)的搭建及使用
- 递归算法——汉诺塔问题
- POJ 2853 Sequence Sum Possibilities 可能会
- 一行中输入未知个数的数字时
- 最小年龄的职员
- Hibernate两种获取session的方式openSession和getCurrentSession的区别与理解
- Angular开发者指南(一)入门介绍
- python 保持json数据到本地时的编码
- Spring中Bean的生命周期配置bean的后置处理器
- 某年某月某日到某年某月某日有多少天
- Linux安装jdk
- IO流_如何让猜数字小游戏只能玩5次案例
- hibernate连接多个数据库