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

这样写错在哪

#include <stdio.h>
int main() 
{ 
    int year = 2008;
    int month = 8;
    int day = 8;
    int sum =0;
switch(month)
{
    case 1:sum=0;break;
    case 2:sum=31;break;
    case 3:sum=59;break;
    case 4:sum=90;break;
    case 5:sum=120;break;
    case 6:sum=151;break;
    case 7:sum=181;break;
    case 8:sum=212;break;
    case 9:sum=243;break;
    case 10:sum=273;break;
    case 11:sum=304;break;
    case 12:sum=334;break;
}
    sum=month+day;
    if((year%4==0&&year%100!=0)||year%400==0)
    sum+=1;
    printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);
    else
    printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);

	return 0;
}


提问者:kiwilee0406 2016-09-30 09:07

个回答

  • qq_林源蔵_0
    2016-09-30 09:37:59

    1:sum+=day;

    2:if()

      {

      }要加括号

  • JustWannaHugU
    2016-09-30 09:26:18

    以下是修改过的程序,错误原因我给你注释标注了,望采纳-_-.//

    #include <stdio.h>
    int main() 
    { 
        int year = 2008;
        int month = 8;
        int day = 8;
        int sum =0;
    switch(month)
    {
        case 1:sum=0;break;
        case 2:sum=31;break;
        case 3:sum=59;break;
        case 4:sum=90;break;
        case 5:sum=120;break;
        case 6:sum=151;break;
        case 7:sum=181;break;
        case 8:sum=212;break;
        case 9:sum=243;break;
        case 10:sum=273;break;
        case 11:sum=304;break;
        case 12:sum=334;break;
    }
        sum += day;//逗号改为英文格式 ,而且逻辑有错误 ---总天数 应该是sum+day 
        if((year%4==0&&year%100!=0)||year%400==0)//if语句没有加大括号 
       {
    	 	sum+=1; 
        	printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);
    	}
        else
        printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);
     
        return 0;
    }