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

我就想问一下,网站的编译器为什么不成功?我在linux以及windows下的dev c++都成功了

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


提问者:qq_神秘大叔_0 2019-08-24 16:35

个回答

  • 慕的地21332321
    2019-08-25 13:46:45
    已采纳

    因为慕课网有不同于Dev-C++的编译机制。

    附:days这个变量没有赋值,在Dev-C++中会被系统随机赋值。

    明白请采纳?

  • 1750421753
    2019-08-26 16:35:32

    为什么你的没有写break也可以呢

  • 慕的地21332321
    2019-08-25 13:47:59

    (days在第13行被声明)

  • 小小疾飞
    2019-08-24 17:16:19

    先不谈你这个其他的问题,输出的值错误是因为你days没有定义,就是没初始化,只是声明了。