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

话说这么写是简单还是更麻烦了

#include <stdio.h>

int main() 

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

    int year = 2008;

    int month = 1;

    int day = 8;

    int i = 0 ;

    for(int r = 0 ; r< month ; r++){

        if(r==1||r==3||r==5||r==7||r==8||r==10||r==12){

           i+=31; 

        }else if(r==4||r==6||r==9||r==11){

            i+=30;

        }

    }

    if(month>=2){

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

            i+=29;

        }else{

            i+=28;

        }  

    }

    i+=day;

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

return 0;

}


提问者:qq_慕运维0552069 2019-04-10 15:53

个回答

  • dreamAmumu
    2019-04-19 16:20:49
    已采纳

    简单并且更灵活了,但是没有用switch,话说我也是这么做的0.0

  • qq_慕无忌8081688
    2019-04-25 15:13:18

    #include <stdio.h>

    int main()

    {

        int year,month,day,i,r;

        year=2008;

        month=8;

        day=8;

        i=0;

        for(r=0;r<month;r++)

        {

            if(r==1||r==3||r==5||r==7)

            {

                i+=31;

            }

            else if(r==4||r==6||r==8)

            {

                i+=30;

            }

            break;

        }

       if(month==2)

        {

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

             {

                 i+=29;

             }

        }

        else

        {

            i+=28;

        }

        i+=day;

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

        return 0;

    }

    大神我这个哪儿有问题,for语句的循环不计算

  • qq_慕无忌8081688
    2019-04-25 11:36:09

    但是计算结果不符合要求,不正确,我代码放到编译器,结果不正确

  • qq_慕无忌8081688
    2019-04-25 11:33:47

    #include <stdio.h>

    int main()

    {

        int year,month,day,i,r;

        year=2008;

        month=8;

        day=8;

        i=0;

        for(r=0;r<month;r++)

        {

            if(r==1||r==3||r==5||r==7)

            {

                i+=31;

            }

            else if(r==4||r==6||r==8)

            {

                i+=30;

            }

            break;

        }

       if(month==2)

        {

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

             {

                 i+=29;

             }

        }

        else

        {

            i+=28;

        }

        i+=day;

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

        return 0;

    }

    大神我这个哪儿有问题,for语句的循环不计算

  • Alittermanner
    2019-04-12 23:49:57

    可以,但不符合题目要求