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

哪里错了吗

#include <stdio.h>

int main()

{

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

    int year = 2008;

    int month = 8;

    int day = 8;

   int sum,flat;

 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;

    default:printf("一年只有12个月哦");break;

  }

  sum=sum+day;

    if(year%400==0||(year%100!=0&&year&4==0))

     flat=1;

     else

    flat=0;

     if(flat==1&&month>2)

     sum++;

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

     return 0;

}


提问者:慕桂英4517430 2019-12-03 19:42

个回答

  • 慕尼黑2341328
    2020-01-14 20:09:29

    我挺想知道的为啥你们的case1都是0

  • Starshine_
    2019-12-03 20:37:26

    1.   if(year%400==0||(year%100!=0&&year&4==0))中的“&”改成“%”

    2.  printf("%d年%d月%d日是该年第%d天",year,month,day,sum);改成 printf("%d年%d月%d日是该年第%d天",year,month,day,sum);