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

讨论那里限制300字符了,只能发这里了。还有更简便的代码吗?

#include <stdio.h>

int main() 

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

    int year = 2008;

    int month = 8;

    int day = 8;

    /*

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

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

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

     */

    int sum = 0;

    switch(month)

    {

        case 1:

            sum = day;

            break;

        case 2:

            sum = 31+day;

            break;    

        case 3:

            sum = 31+28+day;

            break;  

        case 4:

            sum = 31+28+31+day;

            break;

        case 5:

            sum = 31+28+31+30+day;

            break;

        case 6:

            sum = 31+28+31+30+31+day;

            break;    

        case 7:

            sum = 31+28+31+30+31+30+day;

            break;  

        case 8:

            sum = 31+28+31+30+31+30+31+day;

            break;    

        case 9:

            sum = 31+28+31+30+31+30+31+31+day;

            break;

        case 10:

            sum = 31+28+31+30+31+30+31+31+30+day;

            break;    

        case 11:

            sum = 31+28+31+30+31+30+31+31+30+31+day;

            break;  

        case 12:

            sum = 31+28+31+30+31+30+31+31+30+31+30+day;

            break;

            

        default:

            printf("输入错误,一年只有12个月");

    }

    if(month > 2 && year%4 == 0 && year%100 != 0)  //判断是否是闰年

    {

        sum = sum + 1;   //闰年的2月份比平年多一天

    }

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

return 0;

}


提问者:热心市民范先生 2024-08-22 19:52

个回答

  • 孙六耳
    2026-02-18 18:50:22

    #include <stdio.h>

    int main() 

        int year = 2008, sum = 0;

        int month = 8;

        int day = 8;

        switch(month-1)

        {

            case 12:sum+=31;

            case 11:sum+=30;

            case 10:sum+=31;

            case 9:sum+=30;

            case 8:sum+=31;

            case 7:sum+=31;

            case 6:sum+=30;

            case 5:sum+=31;

            case 4:sum+=30;

            case 3:sum+=31;

            case 2:sum+=28;

            case 1:sum+=31;

            default:

                if(year%4 == 0 && year%100 != 0 && month > 2)

                    {

                        sum+=(1+day);

                    }

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

                break;

        }

        return 0;

    }


  • xixidayo
    2024-09-16 22:49:11

    #include <stdio.h>

    int main() 

        int month,day;

        int day1=8;

        for(month=1,day=day1;month<8;month++)

        {

            if(month%2==1)

            {

                day+=31;

            }

            else

            {

                if(month==2)

                {

                    day+=29;

                    continue;

                }

                day+=30;

            }

        }

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