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

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

寒月0

2016-03-10 18:57

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


写回答 关注

2回答

  • 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;
    }

    寒月0

    非常感谢!

    2016-07-04 17:03:56

    共 1 条回复 >

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

    if只是判断以下语句的

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

            flag=1;

    并没有包括switch

C语言入门

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

926210 学习 · 20797 问题

查看课程

相似问题