题目描述
从键盘上输入年份和月份,输出这一年的该月有多少天。
输入格式
3
输出格式
31
代码
#include<stdio.h>int main(){int n, y, t;//n-年,y-月,t-天scanf("%d %d", &n, &y);//输入年和月if (y % 2 != 0)//判断月份为奇数的情况{if (y >= 1 && y <= 7)//1~7月份为奇数情况{t = 31;//如果1~7月份为奇数,则有31天printf("%d\n", t);}else//8~12月份为奇数情况{t = 30;//如果8~12月份为奇数,则有30天printf("%d\n", t);}}if (y % 2 == 0 && y != 2)//月份为偶数的情况(不包括2月,2月特殊后面单独讨论){if (y >= 1 && y <= 7)//1~7月份为偶数情况(无2月){t = 30;//如果1~7月份为偶数,则有30天printf("%d\n", t);}else//8~12月份为偶数情况{t = 31;//如果8~12月份为偶数,则有31天printf("%d\n", t);}}if (y == 2)//2月较为特殊,闰年的2月份为29天,正常2月为28天,所以要对2月进行讨论{//普通闰年:公历年份是4的倍数且不是100的倍数为普通闰年//世纪闰年:公历年份是整百数的,必须是400的倍数才是世界闰年//两者都是闰年的判断条件,所以判断闰年的条件为: //(y % 4 == 0 && y % 100 != 0) || y % 400 == 0if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)//判断闰年{t = 29;//闰年2月有29天printf("%d\n", t);}else{t = 28;//正常2月为28天printf("%d\n", t);}}return 0;}