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

计算2008年8月8日这一天,是该年中的第几天。答案是221,我这个计算出来时218,求问哪里少了3天?

#include <stdio.h>

int main() 

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

    int year = 2008;

    int month = 8;

    int day = 8;

    int sum,i;

    /*

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

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

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

     */

     sum=0;

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

     {

    switch(i)

    {

        case 1||3||5||7||8||10||12:

        sum+=31;

        break;

        default:

        sum+=30;

        break;

        case 2:

        if (year%4==0)

        {

            sum+=29;

        }

        else

        {

            sum+=28;

        }

        

         break;   

    }

     }

    sum+=day;

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

     

return 0;

}


提问者:迷诞 2016-06-25 18:32

个回答

  • fenx_cc
    2016-06-25 21:49:10
    已采纳

    1 || 3 || 5 || 7 || 8 || 10 || 12;是逻辑值了,等于1,所以后边的3、5、7都是执行的default语句了。

    感受下。。。。。

    #include <stdio.h>

    int main()

    {int i;

    i= 1 || 3 || 5 || 7 || 8 || 10 || 12;

    printf("%d", i );

    return 0;