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

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

#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;

}


提问者:熊掌猪肉 2016-07-16 10:59

个回答

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

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

    可以写 case 2:

               case 3:

               case 4:   sum=sum+31;break;