PAT 乙 1028 人口普查
1028. 人口普查(20)
某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。
这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是2014年9月6日,所以超过200岁的生日和未出生的生日都是不合理的,应该被过滤掉。
输入格式:
输入在第一行给出正整数N,取值在(0, 105];随后N行,每行给出1个人的姓名(由不超过5个英文字母组成的字符串)、以及按“yyyy/mm/dd”(即年/月/日)格式给出的生日。题目保证最年长和最年轻的人没有并列。
输出格式:
在一行中顺序输出有效生日的个数、最年长人和最年轻人的姓名,其间以空格分隔。
输入样例:
5 John 2001/05/12 Tom 1814/09/06 Ann 2121/01/30 James 1814/09/05 Steve 1967/11/20
输出样例:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
struct person
{char name[10];char data[20];int yy;int mm;int dd;
};
int logical(yy,mm,dd)
{//还没有出生if(yy>2014)return 0;if(yy==2014){if(mm<9)return 1;if(mm==9){if(dd<=6)return 1;return 0;}else return 0;}//超过200岁if(yy<1814)//不能超过两百岁return 0;if(yy==1814){if(mm<9)return 0;if(mm==9){if(dd>=6)return 1;else return 0;}else return 1;//比9月大的,没有200岁}else return 1;
}
int main()
{int n,i,max,min,max_i,min_i,count=0;max=0;min=100000000;scanf("%d",&n);struct person *a;a=(struct person *)malloc(n*sizeof(struct person));for(i=0;i<n;i++){scanf("%s%s",&a[i].name,&a[i].data);}for(i=0;i<n;i++){a[i].yy=a[i].mm=a[i].dd=0;int j=0;//分解data成为yy,mm,ddfor(j=0;j<4;j++){a[i].yy=a[i].yy*10+(a[i].data[j]-'0');}for(j=5;j<7;j++){a[i].mm=a[i].mm*10+(a[i].data[j]-'0');}for(j=8;j<10;j++){a[i].dd=a[i].dd*10+(a[i].data[j]-'0');}//printf("%d %d %d",a[i].yy,a[i].mm,a[i].dd);}for(i=0;i<n;i++){ //判断是否合理if(logical(a[i].yy,a[i].mm,a[i].dd)==1){if(a[i].yy*1000+a[i].mm*100+a[i].dd>max){max=a[i].yy*1000+a[i].mm*100+a[i].dd;max_i=i;}if(a[i].yy*1000+a[i].mm*100+a[i].dd<min){min=a[i].yy*1000+a[i].mm*100+a[i].dd;min_i=i;}count++;}}if(count==0){printf("0");return 0;}printf("%d ",count);printf("%s ",a[min_i].name);printf("%s",a[max_i].name);
}
PAT 乙 1028 人口普查相关推荐
- 【PAT】1028 人口普查
一.题目描述 PAT 1028 人口普查 某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇上没有 ...
- PAT乙级1028 人口普查 (20 分)
1028 人口普查 (20 分) 某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇上没有超过 2 ...
- pat 乙级 1028 人口普查(C++)
题目 某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇上没有超过 200 岁的老人,而今天是 2 ...
- PAT乙级—1028. 人口普查(20)-native
某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇上没有超过200岁的老人,而今天是2014年9月 ...
- pat乙级 1028 人口普查
某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇上没有超过 200 岁的老人,而今天是 2014 ...
- PAT乙级(1028 人口普查)
输入格式: 输入在第一行给出正整数 N,取值在(0,105]:随后 N 行,每行给出 1 个人的姓名(由不超过 5 个英文字母组成的字符串).以及按 yyyy/mm/dd(即年/月/日)格式给出 ...
- PAT乙级C语言 1028 人口普查
思路 判断是否符合要求并计数,把符合的结构输入另一个数组,对该数组进行qsort排序,然后输出第一个和最后一个元素里的相关成员 推荐 我觉得这个写的很好(呜呜呜我写了七十几行人家写二十几行就好了,差距 ...
- 【2020模拟考试T3】【PAT乙】1028 人口普查 (20分) 字符串比较
problem 1028 人口普查 (20分) 某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇 ...
- PAT 1028 人口普查
1028 人口普查 (20 分) 某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇上没有超过 2 ...
最新文章
- 编写jQueryUI插件(widget)
- 剑指offer_第7题_斐波那契数列
- lamp黄金组合apache+mysql+php的安装
- java面向对象知识汇总的思维导图
- 字节流转化为文件流_JAVA IO分析一:File类、字节流、字符流、字节字符转换流...
- 【企业管理】整理和思考-陈春花:2022年经营关键词
- pytorch argmax_一起无聊地用PyTorch刷爆sklearn的内置数据集吧(`?ω?′)
- StringBuilder的原理
- 科创板开户手续费要2万元,大家怎么看?
- 全国计算机等级考试题库二级C操作题100套(第18套)
- Scala里Map()集合
- CentOS 7 上安装 MySQL5.7
- python设计要求_Python高级应用程序设计任务要求
- VO中的Long类型数据通过注解的方式直接转换为String,防止数据失真
- K210系列开发板介绍
- centos6/7修改主机名的正确方法
- CTC loss 理解
- python解析excel公式_读取Excel单元格值,而不是计算它的公式-openpyx
- UML建模工具 Visual Paradigm敏捷开发教程(一):如何确立项目愿景
- vbox 虚拟机支持ipv6
热门文章
- 中国人工智能学会通讯——智力测试与智能测评的对比思考
- [转]一个男人该有的气质 (马云原话),二十几岁女孩该有的内涵(杨澜)。
- matlab手动圈目标区域,圈点处函数是要手动输入才可以的吗?
- Elasticsearch 倒排索引
- 20P59 PR模板现代干净设计彩色多用途垂直MG社交媒体动画图标抖音小视频竖屏
- Java 打印PDF文档 - 指定打印机、自定义纸张大小、设置打印参数、显示打印对话框等
- 【WLAN】【软件】NXP芯片方案用户态和内核态通讯方式小结
- 平面排版时,运用哪些方法可以突出中文的美感?
- 支付宝快捷注册万里汇WorldFirst个人账号教程!
- C语言 拨钟问题的两种解法。