问答详情
源自:4-17 switch与if语句的应用

我感觉不用break还好写一点。。。。

#include <stdio.h>
int main() 
{ 
    /* 定义需要计算的日期 */
    int year = 2008;
    int month = 8;
    int day = 8;
    int num=0;
    switch(month)
    {
        case 12:num+=30;
        case 11:num+=31;
        case 10:num+=30;
        case 9:num+=31;
        case 8:num+=31;
        case 7:num+=30;
        case 6:num+=31;
        case 5:num+=30;
        case 4:num+=31;
        case 3:
            if(year%4==0)
            {
                num+=29;    
            }else{
                num+=28;
            }
        case 2:num+=31;
        case 1:num+=day;
    }
    
    printf("2008年8月8日是该年的第%d天",num);

	return 0;
}


提问者:龙腾灬万里 2017-10-23 16:32

个回答

  • 慕粉18209612535
    2017-10-29 13:00:24

    我不是很懂qaq但是你闰年的判断方法是不对滴

  • qq_莫非
    2017-10-24 12:28:13

    break帮你找到合适的部分就跳出循环

  • Mr_wjj3727355
    2017-10-23 22:47:27

    兄弟,这个想法把我给惊叹到了!确实思路很ok。但我觉得  case 3:  那里对闰年的判断可能有些许失误

    判断闰年的原则(满足二者其一即可)1.能被4整除,但不能被100整除的是闰年。2.能被100整除,又能被400整除是闰年。

    //判断闰年的原则(满足二者其一即可)1.能被4整除,但不能被100整除的是闰年。2.能被100整除,又能被400整除是闰年。
    if(year%100==0)
    {
        if(yearf%400==0)
        {
            num+=29;
        }
        else
        {
            num+=28;
        }
    }
    else 
    {
        if(year%4==0)
        {
            num+=29;    
        }
        else
        {
            num+=28;
        }
    }


  • qq_莫非
    2017-10-23 18:03:00

    可以,哪种好用就用哪种