本文主要是介绍最小年龄的3个职工,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目1187:最小年龄的3个职工
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:1409
解决:565
题目描述: -
职工有职工号,姓名,年龄.输入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
-
-
#include<iostream>
#include<algorithm>
#include<vector>
using
namespace
std;
typedef
struct
node
{
int
num;
string name;
int
age;
}P;
bool
cmp(P a,P b)
{
if
(a.age!=b.age)
return
a.age<b.age;
else
if
(a.num!=b.num)
return
a.num<b.num;
else
return
a.name<b.name;
}
int
main()
{
P p;
int
n,i;
vector<P> coll;
while
(cin>>n&&n)
{
for
(i=0;i<n;++i)
{
cin>>p.num>>p.name>>p.age;
coll.push_back(p);
}
sort(coll.begin(),coll.end(),cmp);
for
(i=0;i<3&&i<n;++i)
cout<<coll[i].num<<
' '
<<coll[i].name<<
' '
<<coll[i].age<<endl;
coll.clear();
}
return
0;
}
这篇关于最小年龄的3个职工的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!