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

为什么switch不放在if里结果会是225?

如题,switch放在if里答案是对的。


提问者:寒月0 2016-03-10 18:57

个回答

  • svc124
    2016-03-10 21:37:15
    已采纳

    #include <stdio.h>
    int main() 
    { 
        /* 定义需要计算的日期 */
        int year = 2008;
        int month = 8;
        int day = 8;
        int date;
        int flag=0;
        int sum=0;
        /*
         * 请使用switch语句,if...else语句完成本题
         * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
         * 小编还是希望大家独立完成哦~
         */
         if(year%400==0||year%4==0&&year%100!=0)
            flag=1;
       switch(month)
            {
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:
                date=31;//date=31
                break;//跳出循环
                case 4:
                case 6:
                case 9:
                case 11:
                date=30;
                break;
                case 2:
                if(flag)
                    date=29;
                else
                    date=28;
               
                break;
            }//date==31
        
        for(month=1;month<8;month++)
        {
            
            sum+=date;//sum==date*7==217
        }
        sum+=day;//sum=217+8=225
        printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);
    	return 0;
    }

  • 恡忄
    2016-03-10 21:34:38

    if只是判断以下语句的

     if(year%400==0||year%4==0&&year%100!=0)

            flag=1;

    并没有包括switch