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

我真的醉了

用Switch计算月数的天数不还是人口算的,没用到电脑吗?我还以为要用程序来分别大月与小月

提问者:我要成为程序大师 2021-09-16 12:21

个回答

  • 小青青a
    2021-10-24 10:05:01

    http://img1.mukewang.com/6174bf410001bc2008340818.jpg

    #include <stdio.h>

    int main() 

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

        int year = 2008;

        int month = 8;

        int day = 8;

        /*

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

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

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

         */

        int flag=1;

        int num=day;

        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:     num+=28;

            case 2:     num+=31;

            case 1:     num=num; break;

            default:

                        printf("一年只有12个月\n");

            break;

         }

         

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

            flag=1;

        else

            flag=0;

            

        if(flag==1 && month>2)num++;

            

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

    return 0;

    }


  • 慕哥7520997
    2021-09-17 18:34:07

    可以不用人算啊,但是你得教给电脑每个月各是多少天,给你看看我第一次写的程序哈哈哈哈,输出确实是正确的

    #include <stdio.h>

    int main() 

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

        int year = 2008;

        int month = 8;

        int day = 8;

        int i;

        int j;

        int k=0;

        int f;

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

        else f=0;

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

           {

               switch(i)

               {

                   case 1:

                   j=31;

                   k=k+j;

                   break;

                   case 3:

                   j=31;

                   k=k+j;

                   break;

                   case 5:

                   j=31;

                   k=k+j;

                   break;

                   case 7:

                   j=31;

                   k=k+j;

                   break;

                   case 8:

                   j=31;

                   k=k+j;

                   break;

                   case 10:

                   j=31;

                   k=k+j;

                   break;

                   case 12:

                   j=31;

                   k=k+j;

                   break;

                   case  4:

                   j=30;

                   k=k+j;

                   break;

                   case  6:

                   j=30;

                   k=k+j;

                   break;

                   case  9:

                   j=30;

                   k=k+j;

                   break;

                   

                   case 2:

                   j=29;

                   k=k+j;

                   break;

                   

               }

               

           }

       k+=day;

       if(i==1)k+=1;

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