码迷,mamicode.com
首页 > 其他好文 > 详细

华科机考:最小年龄的3个职工

时间:2017-04-08 16:53:04      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:打印   ring   blog   else   测试   关键字   输入   div   main   

时间限制:1秒     空间限制:32768K

 题目描述

职工有职工号,姓名,年龄.输入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>
using namespace std;


struct worker{
   int no;
   string name;
   int age;
}data[35];

int cmp(worker a,worker b){
   if(a.age!=b.age)
      return a.age<b.age;
   else if(a.no!=b.no)
      return a.no<b.no;
   else
      return a.name<b.name;
}
int main(){
   int n;
    while(cin>>n){
     for(int i=0;i<n;i++){
       cin>>data[i].no>>data[i].name>>data[i].age;
     }
     sort(data,data+n,cmp);
     for(int i=0;i<min(3,n);i++)
       cout<<data[i].no<<" "<<data[i].name<<" "<<data[i].age<<endl;
    }
   return 0;
}

 

华科机考:最小年龄的3个职工

标签:打印   ring   blog   else   测试   关键字   输入   div   main   

原文地址:http://www.cnblogs.com/mlgjb/p/6682244.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!