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

可以详细给我解释一下这个题中swich语句下的代码是什么意思

#include <stdio.h>

int main() 

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

    int year = 2008;

    int month = 8;

    int day = 8;

    int d,m;

   

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

        m=29;

    }

    else{

        m=28;

    }

    switch(month){

        case 1:

        case 2:

        case 3:

        case 4:

        case 5:

        case 6:

        case 7:

        case 9:

        case 10:

        case 11:

        case 12:

            d=(month+1)/2*31+((month+1)/2-2)*30+m;

        break;

        case 8:

            d=(month/2+1)*31+(month/2-2)*30+m;//5*31+2*30+29

        break;

        default:

        puts("日期有误!");

        break;

    }

    if(month==2){

        d=d-(m-day);

    }

    else if(month%2!=0||month==8){

        d=d+day-31;

    }

    else{

        d=d+day-30;

    }

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

return 0;

}


正在回答

1 回答

我觉得你给的这个代码并不算是switch和if语句的良好应用,不管是switch中多余的case语句 以及特别奇怪的日期计算 可以看一下给的标准答案,那样还要更容易理解switch一些(我也是初学的,理解有错误还请指出)http://img1.sycdn.imooc.com//59951ecb00012a8706000714.jpg

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

蚂蚁雅黑 提问者

非常感谢!
2017-08-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

可以详细给我解释一下这个题中swich语句下的代码是什么意思

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