题目描述
Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以他想请你帮忙计算一下他和他的几个朋友从出生到达18岁生日所经过的总天数,让他好来比较一下。

输入
一个数T,后面T行每行有一个日期,格式是YYYY-MM-DD。如我的生日是1988-03-07。

输出
T行,每行一个数,表示此人从出生到18岁生日所经过的天数。如果这个人没有18岁生日,就输出-1。

样例输入
1
1988-03-07
样例输出
6574

-----------------------------------------------------我是分割线----------------------------------------------------------
这道题主要考查的只是对于闰年的认识,对于我一个小白来说却是很难很难的,因为要顾虑的方面太多,
好了废话不多,开始进入代码;

#include <stdio.h>
#include <stdlib.h>int fan(int n)     //定义一个自定义的函数,用来判断所给的年份是否是闰年,这个很重要,建义实用函数,否则代码会很长;{if (((n%4==0 && n%100!=0) || n%400==0)) return 1; // 闰年判断方法,不解释了;else return 0;
}int main()
{int c,n,y,r,rn,i;  //个人习惯,c代表测试数据的测试次数,n代表年份,y代表月,r代表日,rn代表结果的天数,i控制循环;scanf("%d",&c);{ while(c--){ rn=0;k=0;rn=18*365; //无论是怎么样的年份,18*365天一定会有,结果数只会比这个多不会比这个少;scanf("%d-%d-%d",&n,&y,&r);   // 注意输入格式!!!!if(fan(n) && y==2 && r==29) printf("-1\n"); // 如果出生在闰年的2月29日,则没有18岁生日;因为18年后没有2月29日(4年一润);else {for(i=1;i<18;i++){if(fan(n+i))rn++; // 经历一个闰年,天数就加一;}if(fan(n)){if(y==1)rn++;  //如果输入的是闰年并且输入的月份是1月,天数则加一,因为一开始的第一年如果是闰年,当年的二月为29天,则总数少加一天;else if(y==2 && r<=28)  //这里有个特殊情况,如果输入的是二月但是没有到29号,则也加一天,理由同上;rn++;}if(fan(n+18)==1) //如果生日当年是闰年;{if(y>2) rn++;//并且生日在2月之后,总数再加一天;}printf("%d\n",rn);             }//输出,完毕;
}
return 0;}}

小结:其实最近因为发生了很多事情,没有时间来写博客,但是代码还在继续的锻炼,很惭愧,今天这到题并不是我一个人独立完成的,借助了学长的帮助,为了加深印象所以写了此篇博客,帮助那些有困惑的同学,也为了给自己加深印象,正所谓双赢。

1105: 18岁生日相关推荐

  1. HDU1201 18岁生日【日期计算】

    18岁生日 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  2. HDU1201 18岁生日【日期计算+水题】

    18岁生日 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  3. 计算到达18岁生日所经过的总天数

    Problem Description Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所 ...

  4. hdu1201 18岁生日(java版本)

    每日一看 18岁生日 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...

  5. 暑假集训day6——E - 18岁生日(20)

    E - 18岁生日(20) Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以他想请你帮 ...

  6. HD1201 18岁生日

    18岁生日                                     Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65 ...

  7. HDU - 1201 - 18岁生日 - [局部分离思想]

    HDU - 1201 - 18岁生日 https://vjudge.net/problem/HD... 一句话题意:给定出生日期(格式为1988-03-07),求到18岁生日为止经历了多少天:没有18 ...

  8. 字节跳动笔试题(一)——18岁生日问题

    前言 之前于6月30日,在下参加了字节跳动游戏研发岗的笔试. 做的一般般,很多题目也都忘了,不过好在对四道编程题还记得比较清楚,这里做一个简单的记录. 18岁生日问题 这道题的大意是给定一个人的出生日 ...

  9. 18岁生日所经过的总天数

    Problem Description Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所 ...

最新文章

  1. 老大让我优化数据库,我上来就分库分表,他过来就是一jio。。。
  2. python encodings模块_ImportError:没有名为'encodings'的模块
  3. sql server数据库定时自动备份
  4. 家属楼如何设置使用免费wifi
  5. mysql5.6 error
  6. html设置边框dw,Dreamweaver Css边框属性
  7. python PIL图像处理-框选
  8. 在apache中设置访问目录后进入的默认页面为index.php
  9. 各纬度气候分布图_欧洲气候特征:以温带气候类型为主,是海洋性气候最显著的大洲...
  10. 【网络爬虫入门04】彻底掌握BeautifulSoup的CSS选择器
  11. 数据结构之线性表的基本C语言语法
  12. Linux shell中在vim打开的文件中查找关键字
  13. IMP 导入数据报错 OCI-21500 OCI-22275
  14. 程序员如何成为一名自由职业者?
  15. iphone长截图哪个软件好_iPhone上最好的长截图工具!
  16. ArcGIS生态敏感性分析制作(附练习数据下载)
  17. 微博是一种倒退,而非革命
  18. [java学习笔记]-注解和反射
  19. android UI设计图片和文字尺寸px对应dp、sp值换算
  20. 【论文笔记】:CornerNet: Detecting Objects as Paired Keypoints

热门文章

  1. camunda 多租户
  2. 几个好玩的区块链app推荐
  3. [fashion]女性的穿衣技巧
  4. YzmCMS 5.2.X 文章发布模块及使用说明
  5. php unix时间戳单位,PHP和UNIX的时间戳记
  6. Daemontools简介
  7. 汇佳学校绿龙冰球队 绽放冰雪强校激情
  8. C6系统绩效考核模板建立原则
  9. 案例分享-智慧景区智能管控系统
  10. 核电仿真卡项目技术回顾 -- 串口通讯、以太网通讯的对比