为了账号安全,请及时绑定邮箱和手机立即绑定

求大神帮忙 这个代码我打了好久但就是输不出来

int year = 2008;

    int month = 8;

    int day = 8;

    int a;

    switch(year%=4)//余数不为零即为平年

      case 0:

      if(month>1)//区分出包不包含二月

         {

        a=(month-2)*30+day+29;

        //减2是因为:假设他是三月八号(假设是平年) 那么总天数a=(3-2)*30+28+8=64天  以此类推

             

         }

          case

          {

              a=day;

              

          } 

          printf("第%d天",a);

      break;

      default:

      if(month>1)

      {

      a=(month-2)*30+day+28;//减2是因为:假设他是三月八号(假设是平年) 那么总天数a=(3-2)*30+28+8=64天  以此类推

      

      }

         case

          {

              a=day;

             

          }

           printf("第%d天",a);

          break;


正在回答

2 回答

先不谈语法结构还有中文符号之类的种种问题。

a=(month-2)*30+day+29;这个的话,一个月有31天30天 你这个算法是不成立的。从根本上就是错的。

1 回复 有任何疑惑可以回复我~
#1

emmmmmmok 提问者

多谢大师指点
2019-08-10 回复 有任何疑惑可以回复我~

你看看我的代码。

#include <stdio.h>

int main() 

    int year = 2008;

    int month = 8;

    int day = 8;

    int r=0,days=0,yue=month;

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

    r=1;

    while(yue>1)

    {

    switch(yue-1)

    {

    case 4:

    case 6:

    case 9:

    case 11:days+=30;break;

    case 2:days+=28+r;break;

    default:days+=31;break;

    }

    yue--;

    }

    days+=day;

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

    return 0;

}


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求大神帮忙 这个代码我打了好久但就是输不出来

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信