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

这样还可以再优化吗?

#include <stdio.h>

int main() 

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

    int year = 2008;

    int month = 8;

    int day = 8;

    /*

     * 请使用switch语句,if...else语句完成本题

     * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”

     * 小编还是希望大家独立完成哦~

     */

    int day1=0;

    switch(month)

    {

        case 1:

            {

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

break;

}


        case 2:

            {

day1=day+31;

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

break;

}

        default:

            {

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

                {

                    day1=day+31+29;

                    for(int i=3;i<month;i++)

                    {

                        if(i==3||i==5||i==7||i==8||i==10||i==12)

                        { day1=day1+31;}

                        else

                        {

                            day1=day1+30;

                        }

                    }

                }

                else

                {

                     day1=day+31+28;

                    for(int i=3;i<month;i++)

                    {

                        if(i==3||i==5||i==7||i==8||i==10||i==12)

                        { day1=day1+31;}

                        else

                        {

                            day1=day1+30;

                        }

                    }     

                }

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

                break;

}


    }

        



return 0;

}


正在回答

代码语言

1 回答

#include <stdio.h>

int main() 

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

    int year = 2008;

    int month = 8;

    int day = 8;

    /*

     * 请使用switch语句,if...else语句完成本题

     * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”

     * 小编还是希望大家独立完成哦~

     */

int i=0;

    switch(month)

    {

        case 1:i=0;break;

case 2:i=31;break;

case 3:i=31+28;break;        

   case 4:i=31+28+31;break;

   case 5:i=31+28+31+30;break;

   case 6:i=31+28+31+30+31;break;

case 7:i=31+28+31+30+31+30;break;

case 8:i=31+28+31+30+31+30+31;break;

case 9:i=31+28+31+30+31+30+31+31;break;

case 10:i=31+28+31+30+31+30+31+31+30;break;

case 11:i=31+28+31+30+31+30+31+31+30+31;break;

case 12:i=31+28+31+30+31+30+31+31+30+31+30;break;

    }

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

     i=i+day+1;

     else

     i=i+day;

     printf("%d年%d月是今年的第%d天!",year,month,i);

return 0;

}

感觉都比较麻烦哦!

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

举报

0/150
提交
取消
C语言入门
  • 参与学习       926424    人
  • 解答问题       20799    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

这样还可以再优化吗?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号