问题:输入年份和月份,计算这一年这个月有多少天
多组输入,一行两个整数,分别表示年份和月份,用空格分割
//判断是否闰年
int LeapYear(int n)
{
if (n % 4 == 0 && n % 100 != 0 || n % 400 == 0)
{
return 1;
}
return 0;
}
//方法一
int main()
{
int y = 0;
int m = 0;
int days[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
while (scanf("%d %d", &y, &m) == 2)
{
int day = days[m - 1];
int ret = LeapYear(y);
if (ret == 1 && m == 2)
{
day += 1;
}
printf("%d\n", day);
}
return 0;
}
//方法二
int main()
{
int year = 0;
int month = 0;
while (scanf("%d %d", &year, &month) != EOF)
{
//判断是否是闰年
int ret = LeapYear(year);
if (ret == 1 && month == 2)
{
printf("%d\n", 29);
}
if (ret == 0 && month == 2)
{
printf("%d\n", 28);
}
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
{
printf("%d\n", 31);
}
if (month == 4 || month == 6 || month == 9 || month == 11)
{
printf("%d\n", 30);
}
}
return 0;
}
运行结果:
![]()