参数 year和month 为年份和月份,若参数正确有效,则函数值为该月的最大日数,否则为0。
输入样例1
1995 3
输出样例1
31
输入样例2
-15 21
输出样例3
0
答案有四类:大月 小月 非法数据 二月,
我的非法数据和二月答案显示错误。
#include <stdio.h>
int IsLeapYear(int year);
int MaxDayMonth(int year, int month);
int main()
{
int y, m;
scanf("%d%d", &y, &m);
printf("%d\n", MaxDayMonth(y, m));
return 0;
}
int MaxDayMonth(int year, int month)
{
if(year>=0)
{if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
return 31;
else if(month==4||month==6||month==9||month==11)
return 30;
else if(month==2)
{if(year%400==0||(year%4==0&&year%100!=0))
return 29;
else return 28;
}
}
else return 0;
}
#include <stdio.h>
int IsLeapYear(int year);
int MaxDayMonth(int year, int month);
int main()
{
int y, m;
scanf("%d%d", &y, &m);
printf("%d\n", MaxDayMonth(y, m));
return 0;
}
int MaxDayMonth(int year, int month)
{
while (1)
{
if (year >= 0)
{
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
return 31;
else if (month == 4 || month == 6 || month == 9 || month == 11)
return 30;
else if (month == 2)
{
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))
return 29;
else return 28;
}
else printf("月份输入错误,请重新输入:");
}
else return 0;
}
}
#include <stdio.h>
int main()
{
int year, month;
int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int maxDay = 0;
scanf("%d%d", &year, &month);
if (year >= 0 && month >= 1 && month <= 12)
{
maxDay = days[month - 1];
if (month == 2)
{
int leap = 0;
if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0))
leap = 1;
maxDay += leap;
}
}
printf("%d\n", maxDay);
return 0;
}