问答详情
源自:4-17 switch与if语句的应用

我用if-else编写之后,输出是217,是哪里出了问题。

if((year%4==0&&year%100!=0)||year%400==0)
    //判断是否是闰年
    {
        for(m=1;m<=(month-1);m++)
        //把该月份之前月份的天数累加
        {
            if((m<8&&m%2==1)&&(m==8)&&(m>8&&m%2==0))
            //判断是否是大月31天
            {
                score+=31;
            }
            else if(m==2)
            //闰年的二月29天
            {
                score+=29;
            }
            else
            //小月30天
            {
                score+=30;
            }
        }
        score=score+day;
        printf("%d年%d月%d日是该年中的第%d天。\n",
            year,month,day,score);
    }
    else
    {
         for(m=1;m<=(month-1);m++)
        {
            if((m<8&&m%2==1)&&(m==8)&&(m>8&&m%2==0))
            {
                score+=31;
            }
            else if(m==2)
            {
                score+=28;
            }
            else
            {
                score+=30;
            }
        }
        score=score+day;
        printf("%d年%d月%d日是该年中的第%d天。",
            year,month,day,score);

提问者:谢日天 2019-02-22 02:30

个回答

  • 小哑师兄
    2019-07-19 18:26:13

    if((m<8&&m%2==1)&&(m==8)&&(m>8&&m%2==0)) 其中是不是包含了2月 7月也是大月