九度OJ 1187:最小年龄的3个职工 (排序)
2015-10-26 11:16
106 查看
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:2291
解决:936
题目描述:
职工有职工号,姓名,年龄.输入n个职工的信息,找出3个年龄最小的职工打印出来。
输入:
输入第一行包括1个整数N,1<=N<=30,代表输入数据的个数。
接下来的N行有N个职工的信息:
包括职工号(整数), 姓名(字符串,长度不超过10), 年龄(1<=age<=100)。
输出:
可能有多组测试数据,对于每组数据,
输出结果行数为N和3的较小值,分别为年龄最小的职工的信息。
关键字顺序:年龄>工号>姓名,从小到大。
样例输入:
样例输出:
来源:2003-2005年华中科技大学计算机研究生机试真题
思路:
常规思路是先排序再取3个最大值。如果N特别大也可以不排序直接求三个最大值,时间更优。
代码:
内存限制:32 兆
特殊判题:否
提交:2291
解决:936
题目描述:
职工有职工号,姓名,年龄.输入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
来源:2003-2005年华中科技大学计算机研究生机试真题
思路:
常规思路是先排序再取3个最大值。如果N特别大也可以不排序直接求三个最大值,时间更优。
代码:
#include <stdio.h> #include <string.h> #include <stdlib.h> #define N 30 struct node { int num; char name[11]; int age; }; void print(struct node *p) { printf("%d %s %d\n", p->num, p->name, p->age); } int cmp(const void *a, const void *b) { struct node *c = (struct node *)a; struct node *d = (struct node *)b; if (c->age != d->age) return c->age - d->age; else if (c->num != d->num) return c->num - d->num; else return strcmp(c->name, d->name); } int main(void) { int n, i; struct node a ; while (scanf("%d", &n) != EOF) { for (i=0; i<n; i++) scanf("%d %s %d", &(a[i].num), a[i].name, &(a[i].age)); qsort(a, n, sizeof(a[0]), cmp); int min = n>3 ? 3 : n; for (i=0; i<min; i++) { print(&a[i]); } } return 0; } /************************************************************** Problem: 1187 User: liangrx06 Language: C Result: Accepted Time:10 ms Memory:912 kb ****************************************************************/
相关文章推荐
- Android 轻松实现后台搭建+APP版本更新
- 错误The request sent by the client was syntactically incorrect的解决
- HDU 3870 Catch the Theves 最短路求最小割
- 8.3.1 How MySQL Uses Indexes MySQL 如何使用索引
- VeraCrypt的只读问题
- 常用java开发使用到的工具以及下载地址 - Java开发软件列表
- 将C#文档注释生成.chm帮助文档
- 如何在XCode中更改iPhone或iPad模拟器类型
- CSS3 之动画及兼容性调优
- 动态调用wcf接口服务
- getDimension(),getDimensionPixelOffset()和getDimensionPixelSize()区别(转载)
- 【Servlet】Javaweb中文字转图片
- 一个奇怪的Java集合问题
- css3实现下拉选择框特效
- 一个奇怪的Java集合问题
- 九度OJ 1186:打印日期 (日期计算)
- FileZilla中文乱码解决方法
- android插件技术-apkplug于OSGI服务基础-08
- 九度OJ 1186:打印日期 (日期计算)
- Office 2016 For Mac 安装及破解方法