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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华科机考:最小年龄的3个职工相关的知识,希望对你有一定的参考价值。

时间限制: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个职工的主要内容,如果未能解决你的问题,请参考以下文章

华科机考:阶乘

华科机考:统计单词

华科机考:矩阵最大值

华科机考:特殊排序

华科机考:遍历链表

华科机考:排序