有问题,求教

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

INFINITY0009

2021-07-30 14:32

#include <stdio.h>

int main() 

    int year = 2008;

    int month = 8;

    int day = 8;

    int sum;

    switch(month)

    {

        case 12:

            sum += 30;

        case 11:

            sum += 31;

        case 10:

            sum += 30;

        case 9:

            sum += 31;

        case 8:

            sum += 31;

        case 7:

            sum += 30;

        case 6:

            sum += 31;

        case 5:

            sum += 30;

        case 4:

            sum += 31;

        case 3:

            sum += 28;

        case 2:

            sum += 31;

        case 1:

            sum += 0;

            break;

        default:

            printf("搞事情?");

            break;

    }

    sum += day;

    if(year%4 == 0)

    {

        sum += 1;

    }

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

return 0;

}

不知为啥结果算出来几百万,还是个变量,点一次一个不同的计算结果,本以为想到了一个不错的方法


写回答 关注

3回答

  • 慕函数5098315
    2021-08-05 23:12:07

    sum没有赋初值,附了初值后就是对的了

  • 上善若水_
    2021-08-03 12:07:09

    我一开始也是这么写的,上网查了下好像不能这么写。看到有java的是这么写的。还有注意8月8日是算到7月底加8天

  • 德萨
    2021-07-31 11:38:38

    你的 case 后面都缺少break,应该是每一句 case 后面都加上 break

    孙六耳 回复INFINI...

    不加break的话case8和后面break前的每个case数都会被取到

    2021-08-01 20:40:59

    共 2 条回复 >

C语言入门

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

926028 学习 · 20793 问题

查看课程

相似问题