在做这个题目之前,我们应该知道闰年和平年的存在,闰年一年366天,2月有29天。平年一年365天,2月28天。 当年份是400的倍数或者(是4的倍数但不是100的倍数)时,该年为闰年,其他为平年。
方法一:用switch语句实现功能
#include<stdio.h>
int count_day(int year, int month)
{
if ((year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))&&month==2)
return 29;
else
{
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
break;
case 4:
case 6:
case 9:
case 11:
return 30;
break;
case 2:
return 28;
break;
default:
break;
}
}
}
int main()
{
int year = 0;
int month = 0;
while (~scanf("%d %d", &year, &month))
{
int day = count_day(year, month);
printf("%d\n", day);
}
return 0;
}
方法二:用if循环判断
#include<stdio.h>
int main()
{
int yesr = 0, month = 0;
while (~scanf("%d %d", &yesr, &month))
{
if (month == 4 || month == 6 || month == 9 || month == 11)
printf("30\n");
else if (month == 2)
{
if (yesr % 400 == 0 || (yesr % 4 == 0 && yesr % 100 != 0))
printf("29\n");
else printf("28\n");
}
else
printf("31\n");
}
return 0;
}
其实用哪种方法都是大同小异,第一种方法也可以不用创建函数,但是为了养成一个好习惯,还是希望能坚持这个做法。而第二种,就是比较常规的方法,仔细阅读肯定是可以看懂的。
好的到最后了,码字不易,希望能帮助到你们,同时也期待你们的关注点赞留言!