请问这样写switch为什么结果不对?

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

熊掌猪肉

2016-07-16 10:59

#include <stdio.h>

int main() 

    /* 定义需要计算的日期 */

    int year = 2008;

    int month = 8;

    int day = 8;

    int sum;

    int i;


for(i = 1;i<=month;i++){


        switch(i){


         case 1||3||5||7||8||10||12:


            sum +=31;break;


         case 2:


 if((year%400==0&&year%100!=0)||year%4==0) sum +=29; 


            else  sum +=28;break;


        default:


            sum += 30;break;}

            

            }

    

  sum+=day;


printf("%d年%d月%d日是该年中的第%d天\n",year,month,day,sum);   

return 0;

}


写回答 关注

1回答

  • 慕粉3157520
    2016-07-16 12:51:46
    已采纳

    case 后不能2||3||4||5:这样写;

    可以写 case 2:

               case 3:

               case 4:   sum=sum+31;break;

    熊掌猪肉

    虽然不是问题所在,还是谢谢您

    2016-07-19 11:24:47

    共 1 条回复 >

C语言入门

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

924613 学习 · 20763 问题

查看课程

相似问题