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

这个代码应该怎么改才对?

#include <stdio.h>

int main() 

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

    int year = 2008;

    int month = 8;

    int day = 8;

    int sum=0;

    switch(month)

    {

        case 1:sum+=31;break;

        case 2:if(year%400 != 0 && year%4 == 0)

                    {

                        sum += 29;

                    }

                    else{

                        sum += 28;

                    }

        case 3:sum+=31;break;

        case 4:sum+=30;break;

        case 5:sum+=31;break;

        case 6:sum+=30;break;

        case 7:sum+=31;break;

        default:printf("一年只有十二个月");break;

    }

     sum=sum+day;

    printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);

    return 0;

}    

    


提问者:慕圣5519978 2020-12-06 23:01

个回答

  • 慕码人0347127
    2020-12-07 22:30:14
    已采纳

    case ?:只会执行这一句,sum不会累加

  • 慕圣5519978
    2020-12-07 22:37:07

    #include <stdio.h>

    int main() 


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

        int year = 2008;

        int month = 8;

        int day = 8;

        int sum=0;

        switch(month)

        {

            case 8:sum=sum+day;

            case 1:sum+=31;

            case 2:if(year%400 != 0 && year%4 == 0)

                        {

                            sum += 29;

                        }

                        else{

                            sum += 28;

                        }

            case 3:sum+=31;

            case 4:sum+=30;

            case 5:sum+=31;

            case 6:sum+=30;

            case 7:sum+=31;break;

            default:printf("一年只有十二个月");break;

        }


    printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);


        return 0;


    }    

    懂了

  • 终究成了路人
    2020-12-07 15:41:26

    你switch写错了,你看下你写的