我这个应该是错在哪了呢?

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

钟阿瞒i

2017-08-01 10:56

#include <stdio.h>

int main() 

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

    int year = 2008;

    int month = 8;

    int day = 8;

    int sum;

    switch(year)

    {

        case 1 : day=31;

        case 2 : if(year%100=0&&year%400=0||year%4=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;

        case 9 : day=30;

        case 10 : day=31;

        case 11 : day=30;

        case 12 : day=31;

        break;

    }

    sum=sum+day;

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

return 0;

}


写回答 关注

1回答

  • qq_龟龟_1
    2017-08-01 11:50:20
    已采纳

    你switch的是year...你下面没有一个case是对的上的,就算是month...由于case之间没有break,会从case8由上往下执行,你的day最终的值是31...牵扯到sum计算的也只有sum=sum+day...应该是31=0+31...sum最终值也就是31,要改的地方挺多的...我switch也不熟,经常用for或者if写- -,你看下左边题目拉到最下面,有个不会了怎么办,哪里的答案写的挺好的...至少让我用switch,我上来是懵逼的- -

    qq_龟龟_... 回复钟阿瞒i

    我也不是主学C的...我就想看下c的一些语法概念例如指针什么的,要全面的话买本书读一读吧,你自己看下c primer plus这本书怎么样...我有...不过没读- -在学日语,还有打游戏- -没时间,估计明年会翻一翻

    2017-08-18 16:09:23

    共 7 条回复 >

C语言入门

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

926028 学习 · 20793 问题

查看课程

相似问题