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

哪里出问题了

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


提问者:慕用7318181 2020-01-31 15:24

个回答

  • 慕盖茨4444243
    2020-02-19 18:15:09

    修改过得代码如下,错误的地方已加粗标注

    #include <stdio.h>
    int main()
    {     /* 定义需要计算的日期 */   
    int year = 2008;   
    int month = 8;   
    int day = 8;
    int date=0;//这里需要提前定义date常量
    /*     * 请使用switch语句,if...else语句完成本题     * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”     * 小编还是希望大家独立完成哦~     */
    switch(month) 
    {  
        case 8:date=31;    
        case 7:
        if(year%4==0)   
    {       
        date=date+29;   
       
    }      
    else     
    {         
        date=date+28;      
       
    }   
    case 6:date=date+31;   
    case 5:date=date+30;   
    case 4:date=date+31;   
    case 3:date=date+30;   
    case 2:date=date+31;   
    case 1:date=date+day;//这里的8换成day会更好
    break;   
       
    }   
    printf("%d年%d月%d日是该年的第%d天",year,month,day,date);//这里少了一个d,month单词拼拼写错误                      
    return 0;
       
    }