通过分析,我们发现年与年之间,天数唯一有可能不同的是2月。

所以我们只需要在用户输入的是2月时,去判断该年是否为闰年。

如果是,则天数+1。

如果不是,则按正常天数输出即可。

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int Is_leap_year(int year)
{
	return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0));
}

int main()
{
	int year = 0;
	int month = 0;
	int day = 0;
	//为了让month可以直接当作下标,我们在days这个数组的最前面添加了一个0
	int days[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

	printf("请依次输入年月,其中用空格隔开:");

	while (scanf("%d %d", &year, &month) == 2)
	{
		day = days[month];

		//月份为2,且是闰年,天数加1
		if (2 == month && Is_leap_year(year))
		{
			day++;
		}
		printf("%d\n", day);
	}

	return 0;
}