人口普查(PAT)

1.题目描述:

某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。

这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是2014年9月6日,所以超过200岁的生日和未出生的生日都是不合理的,应该被过滤掉。

2.输入描述:

输入在第一行给出正整数N,取值在(0, 105];随后N行,每行给出1个人的姓名(由不超过5个英文字母组成的字符串)、以及按“yyyy/mm/dd”(即年/月/日)格式给出的生日。题目保证最年长和最年轻的人没有并列。

3.输出描述:

在一行中顺序输出有效生日的个数、最年长人和最年轻人的姓名,其间以空格分隔。

4.输入例子:

5
John 2001/05/12
Tom 1814/09/06
Ann 2121/01/30
James 1814/09/05
Steve 1967/11/20

5.输出例子:

3 Tom John

6.解题思路:

1. 输入一个整数N,然后再循环N次输入名字和出生日期俩个字符串;
2. 在循环中用count计数符合要求的人数;
3. 同时在循环中对符合要求的人数的年龄进行比较求出最大和最小。

7.源代码:

#include<stdio.h>
#include<string.h>
int main()
{
	int i,N,year,month,day,count=0,age=0,max=0,min=200;
	char name[20],birth[11],yongest_name[20]="\0",oldest_name[20]="\0";
	scanf("%d",&N);
	for(i=0;i<N;i++)
	{
		scanf("%s %s",name,birth);
		year=(birth[0]-48)*1000+(birth[1]-48)*100+(birth[2]-48)*10+birth[3]-48;//出生年份
		month=(birth[5]-48)*10+birth[6]-48;//出生月份
		day=(birth[8]-48)*10+birth[9]-48;//出生日
		if((year>1814&&year<2014)||(year==1814&&month>=9&&day>=6)||(year==2014&&month<=9&&day<=6))
		{//筛选年龄不小于0岁也不大于200岁的人
			age=2014-year;
			if(month>9&&day>6)//年龄
				age--;
			if(age>max)//比较出年龄最大者
			{
				max=age;
				strcpy(oldest_name,name);
			}
			if(age<min)//比较出年龄最小者
			{
				min=age;
				strcpy(yongest_name,name);
			}
			count++;//计数符合要求的人数
		}
		
	}	
	printf("%d %s %s",count,oldest_name,yongest_name);
	return 0;
}
全部评论

相关推荐

秋招进行到现在终于能写总结了。完全没想到战线会拉这么长,过程会如此狼狈,不过更应该怪自己太菜了。好在所有的运气都用在了最后,也是有个去处。背景:双2本硕科班,无竞赛,本科一段研究所实习,硕士一段大厂暑期实习但无转正。技术栈是C++&nbsp;&amp;&nbsp;Golang,实习是客户端音视频(而且是鸿蒙端开发),简历两个C++项目一个Golang项目。主要投递岗位:后端,cpp软开,游戏服务端,测开,以及一些不拘泥于Java的岗位。从8月起总共投递123家公司,笔试数不清了,约面大约30家。offer/oc/意向:友塔游戏(第一个offer,面试体验很好,就是给钱好少南瑞继保(计算机科班点击就送(限男生),不...
乡土丁真真:佬很厉害,羡慕~虽然我还没有到校招的时候,也想讲一下自己的看法:我觉得不是CPP的问题,佬的背书双2,技术栈加了GO,有两段实习。投了123,面了30.拿到11个offer。这个数据已经很耀眼了。这不也是CPP带来的吗?当然也不止是CPP。至少来说在这个方向努力过的也会有好的结果和选择。同等学历和项目选java就会有更好的吗?我个人持疑问态度。当然CPP在方向选择上确实让人头大,但是我觉得能上岸,至于最后做什么方向,在我看来并不重要。至于CPP特殊,有岗位方向的随机性,java不是不挑方向,只是没得选而已。也希望自己以后校招的时候能offer满满
点赞 评论 收藏
分享
10-09 09:39
门头沟学院 C++
HHHHaos:这也太虚了,工资就一半是真的
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
10-12 10:48
已编辑
秋招之苟:邻居家老哥19届双2硕大厂开发offer拿遍了,前几天向他请教秋招,他给我看他当年的简历,0实习实验室项目技术栈跟开发基本不沾边😂,我跟他说这个放在现在中厂简历都过不了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务