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

default的作用是什么,break为什么不能加在printf前面

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


提问者:菜包子呀 2018-05-29 17:28

个回答

  • 菜包子呀
    2018-05-29 18:00:01

    #include <stdio.h>

    int main() 

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

        int year = 2008;

        int month = 8;

        int day = 8;

        /*

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

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

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

         */

        int date = 0;

            month -= 1;

            switch(month)

            {

                case 8:

                    date += 31;

                case 7:

                    date += 31;

                     

                case 6:

                    date += 30;

                     

                case 5:

                    date += 31;

                   

                case 4:

                    date += 30;

                case 3:

                    date += 31;

                 case 2:

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

                         {

                             date += 29; 

                         }

                    else

                        {

                            date += 28;

                        }

                case 1:

                    date += 31;

                

                default:

                date = date + day;

               

                printf("2008年8月8日是该年的第%d天",date);

                 break;

            }


    return 0;

    }


  • 菜包子呀
    2018-05-29 17:33:34

    刚刚把break去掉程序仍然正确,为什么呢