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

希望有耐心人能帮我看看

谢谢谢谢,,哪里出错了

提问者:慕运维3143252 2017-08-07 20:23

个回答

  • 慕沐4518680
    2017-08-07 22:04:12
    已采纳

    代码有点小问题首先你的printf哪一行可以看出来你的表点错了 是中文的

    其次是判断应该是被400整除||被4整除被400不整除

    之后是sum可能刚开始要初始化为0

    代码如下

    #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+=28+31;
            break;
      case 4:
      sum+=31+28+31;
      break;
         case 5:
         sum+=30+31+28+31;
            break;
      case 6:
      sum+=31+30+31+28+31;
      break;
      case 7:
      sum+=30+31+30+31+28+31;
            break;
      case 8:
      sum+=31+30+31+30+31+28+31;
            break;
      case 9:
      sum+=31+31+30+31+30+31+28+31;
            break;
      case 10:
      sum+=30+31+31+30+31+30+31+28+31;
            break;
      case 11:
      sum+=31+30+31+31+30+31+30+31+28+31;
            break;
      case 12:
      sum+=30+31+30+31+31+30+31+30+31+28+31;
      break;

        }
       
        sum+=day;
        if(year%400==0||(year%4==0&&year%100!=0))
        {
            sum++;
        }
        else
        { 
            sum+=0;
        }
            printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);
       
     
       
        return 0;
    }
       
       
       最后也谢谢你,我那个懒得写了直接用的你的 哈哈


  • CYSCL
    2017-08-07 22:01:19

    将判断是否为润年的if语句放在switch语句的前面。给sum赋0,在case中 sum = day +.............