1,首先明确我国的月份和天数之间的关系:
规定1,3,5,7,8,10,12月每月31天? ? 4,6,9,11月每月30天? 2月特别(如果是闰年29天,如果是平年28天)
2,看清题目要求什么(以下我先分两种题型说明)
一,只求给定年份这一年有多少天(例如2021年这一天有多少天)
那么我们可以直接转化为 判断这一年是闰年还是平年 这一问题
题目举例:从屏幕输入一个年份(要求该年份为从1980年后的某一年),并输出该年总共有多少天,如果输入的年份早于或等于1980年则提示无效的输入。(闰年为366天,平年为365天,能被4整除但不能被100整除的年份或者能被400整除的年份是闰年。)
二,给定一个准确日期 求这一年的这一个月有多少天
思路分析:首先开始判断这一年是否是闰年(立flag),主要用 if? ?else if 来判断月份? 将2月份单独挑出来判断
三,给定一个准确日期? 求这是这一年的第几天
思路分析:老样子我们先来一个判断是否为闰年,因为求第几天肯定有不同的年份,我们需要不断将每个月的天数加起来(来一个for循环解决),将每月的天数放在一个数组当中,再将2月单独挑出来修改(红色部分为代码)
#include <stdio.h> ?int main() { ? ? int a,b,c,sum=0; ? ? scanf("%d %d %d",&a,&b,&c); ? ? int bb[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; ? ? if(a%400==0||(a%4==0&&a%100!=0)) ? ? { ? ? ? ? bb[2]=29; ? ? } ? ? int i; ? ? for(i=1;i<b;i++) ? ? { ? ? ? ? sum+=bb[i]; ? ? } ? ? sum+=c; ? ? printf("%04d-%02d-%02d:%d",a,b,c,sum); }
以上便是我对这种题型的总结,因为是新手小白,肯定有很多不足的地方,欢迎指正。
|