qyyouuuu 2022-10-10 22:03 采纳率: 100%
浏览 102
已结题

为什么,哪里错了 我输入2 29依旧是YES

题目:
输入2100年某一天的月和日的值,输出这一天是否为合法日期(表达式会很长)。
输入格式:
输入两个整数,表示月和日。
输出格式:
合法日期输出YES,否则输出NO。

内容:
#include<stdio.h>
int main()
{
int m,d;
scanf("%d %d",&m,&d);
if(m==2 && d<=28)
{
printf("YES");
}
else if(m==1,3,5,7,8,10,12 and d<=31)
{
printf("YES");
}
else if(m==4,6,9,11 and d<=30)
{
printf("YES");
}
else
{
printf("NO");
}
return 0;
}

  • 写回答

1条回答 默认 最新

  • lzl2040 新星创作者: 人工智能技术领域 2022-10-10 22:13
    关注

    m==4,6,9,11这个是错误的写法

    #include<stdio.h>
    int main()
    {
        int m,d;
        scanf("%d %d",&m,&d);
        if(m==2 && d<=28)
        {
            printf("YES");
        }
        else if((m==1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) && d<=31)
        {
            printf("YES");
        }
        else if((m==4 || m == 6 || m == 9 || m == 11) && d<=30)
        {
            printf("YES");
        }
        else
        {
            printf("NO");
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月18日
  • 已采纳回答 10月10日
  • 创建了问题 10月10日