1187.年龄最小的三个职工

Wesley13
• 阅读 643

题目描述:

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

struct worker{
    int id;
    char name[10];
    int age;
}buf[30];

bool cmp(worker a,worker b)
{
    if(a.age!=b.age) return a.age<b.age;
    if(a.id!=b.id) return a.id<b.id;
    int temp=strcmp(a.name,b.name);
    return temp<0;
}

int main()
{
    int n,i;
    while(cin>>n)
    {
        for(i=0;i<n;i++)
        {
            cin>>buf[i].id>>buf[i].name>>buf[i].age;
        }
        sort(buf,buf+n,cmp);
        cout<<buf[0].id<<" "<<buf[0].name<<" "<<buf[0].age<<endl;
        cout<<buf[1].id<<" "<<buf[1].name<<" "<<buf[1].age<<endl;
        cout<<buf[2].id<<" "<<buf[2].name<<" "<<buf[2].age;        
    }
    return 0;
}
点赞
收藏
评论区
推荐文章
DaLongggggg DaLongggggg
3年前
python刷题-序列求和
问题描述求123...n的值。输入格式输入包括一个整数n。输出格式输出一行,包括一个整数,表示123...n的值。样例输入4样例输出10样例输入100说明:有一些试题会给出多组样例输入输出以帮助你更好的做题。一般在提交之前所有这些样例都需要测试通过才行,但这不代表这几组样例数据都正确了你的程序就是完全正确的,潜在的错误可能仍然导致你的得分较低
先知 先知
3年前
C 语言代码大全
1两个数组的合并题目描述已知数组a中有m个按升序排列的元素,数组b中有n个按降序排列的元素,编程将a与b中的所有元素按降序存入数组c中。输入输入有两行,第一行首先是一个正整数m,然后是m个整数;第二行首先是一个正整数n,然后是n个整数,m,n均小于等于1000000。输出输出合并后的mn个整数,数据之间用空格隔开。输出占一行。样例输入4
DaLongggggg DaLongggggg
3年前
python刷题-最大最小公倍数
问题描述已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。输入格式输入一个正整数N。输出格式输出一个整数,表示你找到的最小公倍数。样例输入9样例输出504数据规模与约定1<N<106。Nint(input())Min1ifN<2:print(N)elifN%2
DaLongggggg DaLongggggg
3年前
python刷题-数列排序
资源限制时间限制:1.0s内存限制:512.0MB问题描述  给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<n<200输入格式  第一行为一个整数n。  第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。输出格式  输出一行,按从小到大的顺序输出排序后的数列。样例输入583649样例输出34689···
DaLongggggg DaLongggggg
3年前
python刷题-进制转换
十六进制转八进制问题描述  给定n个十六进制正整数,输出它们对应的八进制数。输入格式  输入的第一行为一个正整数n(1<n<10)。  接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式  输出n行,每行为输入对应的八进制正整数。  【注意】  输入的十六进制数不会有
DaLongggggg DaLongggggg
3年前
python刷题-数列特征
问题描述给出n个数,找出这n个数的最大值,最小值,和。输入格式第一行为整数n,表示数的个数。第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。输出格式输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。样例输入513245样例输出5211数据规模与约定1<n<10000。
DaLongggggg DaLongggggg
3年前
python刷题-查找整数
问题描述给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。输入格式第一行包含一个整数n。第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。第三行包含一个整数a,为待查找的数。输出格式如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出1。样例输入61948399样例输
Stella981 Stella981
3年前
Python基础之格式化输出、运算符、数字与布尔值互换以及while...else
python是一天学一点,就这样零零碎碎……格式化输出  %是占位符,%s是字符串格式,%d整数格式,%f是浮点数格式1nameinput('输入姓名')2ageinput('输入年龄')3str'年龄:%d,姓名:%s'%(int(age),name)4str
Wesley13 Wesley13
3年前
Codevs 1159最大全0子矩阵
题目描述Description在一个0,1方阵中找出其中最大的全0子矩阵,所谓最大是指O的个数最多。输入描述InputDescription输入文件第一行为整数N,其中1<N<2000,为方阵的大小,紧接着N行每行均有N个0或1,相邻两数间严格用一个空格隔开。输出描述OutputDescription
Wesley13 Wesley13
3年前
1050 螺旋矩阵
1050 螺旋矩阵 (25分)本题要求将给定的 N 个正整数按非递增的顺序,填入“螺旋矩阵”。所谓“螺旋矩阵”,是指从左上角第1个格子开始,按顺时针螺旋方向填充。要求矩阵的规模为 m 行 n 列,满足条件:m×n 等于 N;m≥n;且 m−n 取所有可能值中的最小值。输入格式:输入在第1行中给出一个正整数 N,第2行给出 N