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

求助大佬....

这段代码我用devc++运行显示default那行有错误,但是不知道是错哪了.....

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

提问者:_Observer 2019-02-22 18:13

个回答

  • Cyber丶Kaka
    2019-02-22 22:02:31
    已采纳

    default:date+=8,  <----你这里是逗号啊

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

  • 慕慕9186062
    2019-03-01 21:06:30

    好多小细节,你天数好多都加错了吧   对应月份 1.3.5.7.8.10.12 都是加31啊。。。还有你的一月也不见了。。。

    然后后面应该是在case 2后面说:

    if(year%400==0||(year%4==0&&year%100!=0))
       { date+=29;}
        else {date+=28;}