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

大佬帮忙看看哪里错了

请使用switch语句和if...else语句,计算2008年8月8日这一天,是该年中的第几天。

程序分析:

  以5月1日为例,应该先把前4个月的天数加起来,然后再加上1天即本年的第几天。

特殊情况:

  在计算闰年的时候,2月是29天


#include <stdio.h>

int main() 

    // 定义需要计算的日期 

    int year = 2008;

    int month = 8;

    int day = 8;

    int big month=31;//1,3,5,7,8,10,12月

    int small month=30;//4,6,9,11月

    //天数

    int mun;

    //检测是否为闰年的状态位

    int flag;

  

    switch(month){

        //1月

        case 1:

             mun=big month;

             break;

        case 2:

        //1,2月

             mun=big month+28;

             break;

        case 3:

        //1,2,3

             mun=(big month*2)+28;

             break;

        case 4:

        //1,2,3,4月

             mun=(big month*2)+28+small month;

             break;

        case 5:

        //1,2,3,4,5月

             mun=(big month*3)+28+small month;

             break;

        case 6:

        //1,2,3,4,5,6月

             mun=(big month*3)+28+(small month*2);

             break;

        case 7:

        //1,2,3,4,5,6,7月

             mun=(big month*4)+28+(small month*2);

             break;

        case 8:

        //1,2,3,4,5,6,7,8月

             mun=(big month*5)+28+(small month*2);

             break;

        case 9:

        //1,2,3,4,5,6,7,8,9月

             mun=(big month*5)+28+(small month*3);

             break;

        case 10:

        //1,2,3,4,5,6,7,8,9,10月

             mun=(big month*6)+2month+(small month*3);

             break;

        case 11:

        //1,2,3,4,5,6,7,8,9,10,11月

             mun=(big month*6)+28+(small month*4);

             break;

        case 12:

        //1,2,3,4,5,6,7,8,9,10,11,12月

             mun=(big month*7)+28+(small month*4);

             break;

        default:

             printf("一年当中只有12个月");

             break;

    }

    //计算天数

    mun+=day;

    

    //当改年为闰年时,将状态位设置成1,否则为0

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

         flag=1;

    else

         flag=0;

         

    //即改年为闰年,2月为29天    

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

         mun+=1;

         

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

return 0;

}


正在回答

2 回答

滴滴滴

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

丷渐入佳境

2month什么鬼 还有small month变量能这么命名么 还有case的应该是month-1
2022-03-11 回复 有任何疑惑可以回复我~

在线等,感谢指导

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

克里斯老刘 提问者

解答成功的大神一定会收纳的!
2022-02-11 回复 有任何疑惑可以回复我~
#2

克里斯老刘 提问者 回复 克里斯老刘 提问者

滴滴滴
2022-02-15 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

大佬帮忙看看哪里错了

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