输入n个日期,来获取他们分别是对应年的第几天并判断是否为闰年

输入n个日期,来获取他们分别是对应年的第几天并判断是否为闰年

定义一个数组,对应每个月份的多少天,从1到month-1累加,再加上day就是改年的第几天。
代码如下:

#include <stdio.h>
#include <stdlib.h>
int main()
{ 
    int i,j,n;
    int *year,*mon,*day;
    int sum = 0;
    int d[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    scanf("%d",&n);
    year = (int*)malloc(sizeof(int)*n);
    mon = (int*)malloc(sizeof(int)*n);
    day = (int*)malloc(sizeof(int)*n);
    //输入n个日期
    for(i=0;i<n;i++)
        scanf("%d %d %d",&year[i],&mon[i],&day[i]);


    for(i=0;i<n;i++)
    {
        sum = 0;
        if(year[i]%4==0 && year[i]%100!=0 || year[i]%400==0)//闰年
        {
            d[2]=29;
            printf("%d年是闰年,",year[i]);
        }
        else
        {
            d[2]=28;
            printf("%d年不是闰年,",year[i]);
        }
        for (j=1;j<mon[i];j++)
        {
            sum += d[j];
        }
        sum += day[i];
        printf("%d年%d月%d日是该年的第%d天\n",year[i],mon[i],day[i],sum);
    }

    free(year);year=0;
    free(mon);mon=0;
    free(day);day=0;
    return 0;
}