zoukankan      html  css  js  c++  java
  • 华科机考:最小年龄的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;
    }
  • 相关阅读:
    题解 CF171G 【Mysterious numbers
    题解 P1157 【组合的输出】
    题解 P3955 【图书管理员】
    题解 P2036 【Perket】
    题解 CF837A 【Text Volume】
    题解 CF791A 【Bear and Big Brother】
    题解 CF747A 【Display Size】
    题解 P1332 【血色先锋队】
    题解 P2660 【zzc 种田】
    题解 P4470 【[BJWC2018]售票】
  • 原文地址:https://www.cnblogs.com/mlgjb/p/6682244.html
Copyright © 2011-2022 走看看