它说 else (year%4==0&&month==2) { day+=29; }错了,我看了好几遍不知道哪里错了,求大神指点

来源:4-17 switch与if语句的应用

Alone离殇

2020-06-29 09:53

#include <stdio.h>

int main() 

 

    int year = 2008;

    int month = 8;

    int day = 8;

  

    

    for(month=1;month<8;month++)

     { 

         if (month==1||3||5||7)

        {

         day+=31;

        }

        else (year%4==0&&month==2)

        {

         day+=29;   

        }

        else if(month==4||6)

        {

         day+=30;

        }

      

        

     }

    

    printf("2008年8月8日是该年的第%d\n天",day);









return 0;

}


写回答 关注

1回答

  • AL苏南
    2020-06-29 15:44:00

    兄弟你这个优先级就错了,比如(year%4==0&&month==2)先执行year%4==0,这个结果是1,同时执行month==2,比如第一轮for循环month=1那month==2结果为0,然后执行&&,就是1&&0,结果出0,在else括号里就不是一个条件了就运行不了{}里的代码


C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926217 学习 · 20797 问题

查看课程

相似问题