输入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;
}