【深基3.例9】月份天数
题目描述
输入年份和月份,输出这一年的这一月有多少天。需要考虑闰年。
输入格式
输入两个正整数,分别表示年份 y y y 和月数 m m m,以空格隔开。
输出格式
输出一行一个正整数,表示这个月有多少天。
样例 #1
样例输入 #1
1926 8
样例输出 #1
31
样例 #2
样例输入 #2
2000 2
样例输出 #2
29
提示
数据保证 1583 ≤ y ≤ 2020 1583 \leq y \leq 2020 1583≤y≤2020, 1 ≤ m ≤ 12 1 \leq m \leq 12 1≤m≤12。
分析一波~
首先“一月大,二月平···”那么1,3,5,7,8,10,12是大月(31天),而4,6,9,11是小月(30天),2月是平月
所以第二步要特判年是否为闰年(ps:闰年就是为了防止误差在2月加了一天,闰年要能被4整除却不能被100整除,或能被400整除)
第三步建一个月的数量的表,具体代码说
极简代码供上~
#include <stdio.h>
int main()
{
int n,m;//一个年份n,一个月份m
scanf("%d %d",&n,&m);//简单输入
int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};/建表(此时二月是按照平年算)
if(n%4==0&&n%100!=0||n%400==0)//特判闰年
day[2]=29;//闰年2月29天
printf("%d",day[m]);输出
return 0;
}