/* a8-1-3.c */
#include <stdio.h>

int is_leap_year(int y);
int month_last_day(int y, int m);

int main(void)
{
	int year, month, last_day;

	printf("西暦を入力してください。＞ ");
	scanf("%d", &year);
	printf("月を入力してください。＞ ");
	scanf("%d", &month);

	last_day = month_last_day(year, month);

	/* 月の最終日を求める */
	printf("%d年%d月の最終日は%d日です。\n", year, month, last_day);

	return 0;
}

/*** 月の最終日 ***/
/* （仮引数）y:西暦年　m:月　（返却値）月の最終日 */
int month_last_day(int y, int m)
{
	int d = 0, last[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

	if (m == 2) {
		d = last[m-1] + is_leap_year(y);    /* 閏年なら+1 */
	}
    else if (m >= 1 && m <= 12) {
        d = last[m-1];
	}

	return d;
}

/*** 閏年の判定 ***/
/*（仮引数）y:西暦年　（返却値）1:閏年　0:閏年以外 */
int is_leap_year(int y)
{
	int rc = 0;

    if (y % 4 == 0  &&  y % 100 != 0 || y % 400 == 0) {
		rc = 1;
	}

	return rc;
}
