获得月份天数
题目:获得某年某月有多少天,编程实现。
可以多组输入年份和月份,计算这一年这个月有多少天。
思路:
众所周知,每四年就会有一个闰年。
在闰年这一年,二月份会多一天
判断闰年的两个方法:
1.能被400整除的年份
2.能被4整除但是不能被100整除的年份
一三五七八十腊 三十一天永不差;其余月份都是三十天(二月份除外)
代码实现如下
#include<stdio.h>
int main()
{
int year = 0;
int month = 0;
int day = 0;
int days[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
printf("请输入年份和月份\n");
while (scanf("%d%d", &year, &month) != EOF)
{
day = days[month];
if ((year % 400 == 0) || (year % 4 == 0) && (year % 100 != 0))
{
if (month == 2)
{
day++;
}
}
printf("%d\n", day);
}
return 0;
}
2000年是千禧之年,同时也是闰年
所以2月份的天数也就是29。
今年(2022)的五月份也就是现在的月份,天数是31。
这里需要注意的是
scanf()函数的返回值是获得的数值的个数
也就是说,从键盘上输入n个数字(或者字符)
函数就会返回值就是n
若scanf()函数没有获得数值,返回值便是-1
上面代码中,函数返回的便是2