为什么不管我输入的year是平年还是闰年,二月份的天数总是28呢?

来源:4-17 switch与if语句的应用

TheRedWolf

2017-03-10 21:05

int main()

{

    int year,month,day;

    int i,j,n;

    int a[12];

    scanf ("%d%d%d",&year,&month,&day);

    printf ("%d\t%d\t%d\n",year,month,day);

    for (i=0;i<=12;i++){

        if (i==0){

            a[i]=31;

        }else if(i==1){

            a[i]=28;

        }else if(i%2==1){

            a[i]=31;

        }else{

            a[i]=30;

        }

    }

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

        a[1]=29;

    }else{

        a[1]=28;

    }

    for (i=0;i<=12;i++){

        printf ("%d\t",a[i]);

    }

return 0;

}

为什么我不管输入year是平年还是闰年,二月份的天数都是28呢?我搞不懂。。。。。

写回答 关注

1回答

  • TheRedWolf
    2017-03-10 21:18:24

    我找到错误地方了,我在第一个for循环的时候,给i设定条件的时候是i<=12,但是我的数组长度为12,数组越界了,把这个<=改为< ,一切正常了

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926025 学习 · 20793 问题

查看课程

相似问题