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

网页不支持这种写法 我在程序端运行可以的 避免了人为累加天数

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

    int year = 2008;

    int month = 8;

    int date = 8;

    /*

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

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

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

     */

    int i,day=0,sum=0,flag;

    

    for(i=1;i<month;i++)

    {

        switch(i)

        {

            case 1:day=31;break;

            case 2:day=28;break;

            case 3:day=31;break;

            case 4:day=30;break;

            case 5:day=31;break;

            case 6:day=30;break;

            case 7:day=31;break;

            case 8:day=31;break;

            case 9:day=30;break;

            case 10:day=31;break;

            case 11:day=30;break;

            case 12:day=31;break;

        }

        sum+=day;

    }

    sum+=date;

    

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

    flag=1;

    else

    flag=0;


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

    sum++;

    printf("%d",sum);


正在回答

3 回答

感觉很机智,但是这样会增加计算机的运算次数吧,运行速率是不是会降低啊

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

我认为你的代码还能优化

switch(i){

            case 4:

            case 6:

            case 9:

            case 11:

                monthDays = 30;

                break;

            case 2:

                if(year%4==0){

                    monthDays = 29;

                }else{

                    monthDays = 28;

                }

                break;

            default:

                monthDays = 31;

                break;

             

         }


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

可以的,很机智,没问题

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

举报

0/150
提交
取消

网页不支持这种写法 我在程序端运行可以的 避免了人为累加天数

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