求指教!关与计算年月日的一道题
#include <stdio.h>typedef struct
{
int year;
int month;
int day;
}date;
int days(date d)
{
int num = 0;
int m, da, i;
if ((d.year %4 == 0 && d.year %100!=0)||(d.year % 400 == 0))
{
for (m = 1; m < d.month ; m++)
{
if (m == 2)
{
da = 29;
num = num + da;
}
else if (m==4||m==6||m==8||m==11)
{
da = 30;
num = num+da;
}
else
{
da = 31;
num = num +da;
}
num = num + d.day;
}
return num;
}
else
{
for (m = 1; m <d.month ; m++)
{
if (m == 2)
{
da = 28;
num = num +da;
}
else if (m==4||m==6||m==8||m==11)
{
da = 30;
num = num +da;
}
else
{
da = 31;
num = num +da;
}
num = num + d.day;
}
return num;
}
}
int main()
{
date d;
scanf("%d%d%d",&d.year,&d.month,&d.day);
printf("%d年%d月%d日 is the %d days of this year",d.year,d.month,d.day,days(d));
return 0;
}
为什么我输入2000 2 29就能得到正确答案60
而我输入2000 3 1得到的错误答案62
这是为什么