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

请问大佬们这是哪里错了

#include <stdio.h>

int main() 

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

    int year = 2008;

    int month = 8;

    int day = 8;

    /*

     * 请使用switch语句,if...else语句完成本题

     * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”

     * 小编还是希望大家独立完成哦~

     */

    

    switch(month-1)

    {

    case 1:day+=31;

    case 2:if(year%4==0&&year%100!=0) day+=29; else day+=28;

    case 3:day+=31;

    case 4:day+=30;

    case 5:day+=31;

    case 6:day+=30;

    case 7:day+=31;

    case 8:day+=31;break;

    }

    printf("%d年%d月8日,第%d天",year,month,day);





return 0;

}


提问者:qq_慕慕5508019 2022-06-01 17:27

个回答

  • 慕虎9442233
    2022-08-25 16:48:01

    要从case8开始到case1  全部倒过来才行,不然你现在是case7之前的都pass掉了,从case7开始执行,所以变成70。

  • 宝慕林7514018
    2022-06-18 14:36:51

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


  • 宝慕林7514018
    2022-06-18 14:33:46

    #include <stdio.h>

    int main() 

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

        int year = 2008;

        int month = 8;

        int day = 8;

        int totalDay = 0;

        int i = 0;

        /*

         * 请使用switch语句,if...else语句完成本题

         * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”

         * 小编还是希望大家独立完成哦~

         */

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

            switch(i)

            {

                case 1: totalDay = totalDay + 31;

                break;

                case 2: 

                if(year % 4 == 0 & year % 100 != 0){

                    totalDay = totalDay + 29;

                }else{

                    totalDay = totalDay + 28;

                }

                break;

                case 3: totalDay = totalDay + 31;

                break;

                case 4: totalDay = totalDay + 30;

                break;

                case 5: totalDay = totalDay + 31;

                break;

                case 6: totalDay = totalDay + 30;

                break;

                case 7: totalDay = totalDay + 31;

                break;

                case 8: totalDay = totalDay + 31;

                break;

                case 9: totalDay = totalDay + 30;

                break;

                case 10: totalDay = totalDay + 31;

                break;

                case 11: totalDay = totalDay + 30;

                break;

                case 12: totalDay = totalDay + 31;

                break;

                

            }

        }

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

    return 0;

    }