输入年月日判断是这一年的第几天

pta提交显示段错误,是哪里漏了呀能不能指点一下子,输出不对

img

img

5、6行交换
scanf("%d,%d,%d",&a,&s,&d);

为什么不用日期相减呢

12行s和d<=吧,30行应该是输出g。5,6行交换。月份的天数错了,七月也是31天六月30天,类推,然后二月如果是闰年就29天,不是就是28天

仅供参考,望采纳~

#include <stdio.h>
int leap_year[]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int pin_year[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main(void)
{
    int y,m,d,day=0;
    printf("请输入年月日:\n");
    scanf("%d,%d,%d",&y,&m,&d);
    if(m>12||d>31)
    {
        printf("输入错误!");
    }
    else
    {
        if((y%4==0&&y%100!=0)||(y%400==0))//闰年366
        {
            for(int i=1;i<m;i++)
            {
                day+=leap_year[i];
            }
            day+=d;
        }
        else//平年365
        {
            for(int j=1;j<m;j++)
            {
                day+=pin_year[j];
            }
            day+=d;
        }
        printf("这一天是这一年的第%d天\n",day);
    }
    return 0;
}

img