PTA 题目 约会成功了吗?

**2021年9月9日,张三想约一直暗恋了很久的的女生小芳看电影,小芳告诉张三这天没空,可以答应在某年某月某日陪他一起看。输入一个约会的日期,请你编写程序判断最终张三是否能实现他约会的愿望,若能实现则输出yes,否则输出no。注意,约会不能穿越到2021年9月9日前。

输入格式:
在一行中输入年月日,用-分隔。

输出格式:
合法的日期输出yes,不合法的日期输出no

输入样例1:
2022-7-7
输出样例1:
yes
输入样例2:
2022-2-29
输出样例2:
no
输入样例3:
2021-2-28
输出样例3:
no
**

供参考:

#include <stdio.h>
int main()
{
    int M[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
    int y, m, d;
    //printf("Input yyyy-mm-dd:");
    scanf("%d-%d-%d", &y, &m, &d);
    if ((y == 2021 && m == 9 && d >= 9) || (y == 2021 && m > 9) || (y > 2021))
    {
        M[1] = ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) ? 29 : 28;
        if (m <= 12 && m > 0 && d <= M[m - 1] && d > 0)
            printf("yes");
        else
            printf("no");
    }
    else
    {
        printf("no\n**");
    }
    return 0;
}


就是判断输入的日期是否真实存在,2022平年2月没有29号