【九度OJ】题目1187:最小年龄的3个职工 解题报告
2017-03-18 17:08
423 查看
【九度OJ】题目1187:最小年龄的3个职工 解题报告
标签(空格分隔): 九度OJhttp://ac.jobdu.com/problem.php?pid=1187
题目描述:
职工有职工号,姓名,年龄.输入n个职工的信息,找出3个年龄最小的职工打印出来。输入:
输入第一行包括1个整数N,1<=N<=30,代表输入数据的个数。接下来的N行有N个职工的信息:
包括职工号(整数), 姓名(字符串,长度不超过10), 年龄(1<=age<=100)。
输出:
可能有多组测试数据,对于每组数据,输出结果行数为N和3的较小值,分别为年龄最小的职工的信息。
关键字顺序:年龄>工号>姓名,从小到大。
样例输入:
5 501 Jack 6 102 Nathon 100 599 Lily 79 923 Lucy 15 814 Mickle 65
样例输出:
501 Jack 6 923 Lucy 15 814 Mickle 65
Ways
同样简单的题目,一遍A。注意n小于3的情况也要判断。#include<stdio.h> #include<algorithm> #include<string.h> using namespace std; struct Man { int num; char name[20]; int age; } man[50]; bool cmp(Man a, Man b) { if (a.age != b.age) { return a.age < b.age; } else if (a.num != b.num) { return a.num < b.num; } else { int temp = strcmp(a.name, b.name); return temp < 0; } } int main() { int n; while (scanf("%d", &n) != EOF) { for (int i = 0; i < n; i++) { scanf("%d%s%d", &man[i].num, man[i].name, &man[i].age); } sort(man, man + n, cmp); for (int i = 0; i < n && i < 3; i++) { printf("%d %s %d\n", man[i].num, man[i].name, man[i].age); } } return 0; }
Date
2017 年 3 月 18 日相关文章推荐
- 九度OJ 1187:最小年龄的3个职工 (排序)
- 【九度OJ】1187:最小年龄的3个职工
- 九度OJ 1187:最小年龄的3个职工 (排序)
- 【九度】题目1187:最小年龄的3个职工
- 九度OJ 题目1187:最小年龄的3个职工
- 最小年龄的3个职工(解题报告)
- 题目1187:最小年龄的3个职工
- 题目1187:最小年龄的3个职工
- 题目1187:最小年龄的3个职工
- 题目1187:最小年龄的3个职工
- 题目1187:最小年龄的3个职工
- 【九度OJ】题目1170:找最小数 解题报告
- 题目1187:最小年龄的3个职工
- 【九度OJ】题目1185:特殊排序 解题报告
- 【九度OJ】题目1056:最大公约数 解题报告
- 【九度OJ】题目1439:Least Common Multiple 解题报告
- 【九度OJ】题目1190:大整数排序 解题报告
- 【九度OJ】题目1175:打牌 解题报告
- 【九度OJ】题目1171:C翻转 解题报告
- 【九度OJ】题目1197:奇偶校验 解题报告