程序测试输入年月日,满足条件

问题遇到的现象和发生背景

怎么编写一个名为NextDate的小程序。用户在程序中输入三个数据(年、月、日)程序返回输入日期后面一天的日期。年、月、日都取整数值,且满足以下条件:

• MONTH: 112
• DAY: 1
31
• YEAR:1912~2112

用代码块功能插入代码,请勿粘贴截图

供参考:

#include <stdio.h>
int IsLeapYear(int y)
{
    return ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0));
}
int DaysOfMonth(int y, int m)
{
    int a[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
    if (IsLeapYear(y) && m == 2) return a[m - 1] + 1;
    return a[m - 1];
}
void Show(int year,int month,int day)
{
    printf("%d %d %d\n", year, month, day);
}
void NextDate(int *year,int *month,int *day)
{
    if ((*day) == DaysOfMonth(*year, *month))
    {
        (*day) = 1;
        if ((*month) == 12) {
            (*month) = 1;
            (*year)++;
        }
        else {
            (*month)++;
        }
    }
    else {
        (*day)++;
    }
}
int main()
{
    int y, m, d;
    printf("input\n");
    scanf("%d%d%d", &y, &m, &d);

    NextDate(&y, &m, &d);

    printf("output\n");
    Show(y, m, d);
 
    return 0;
}