一道计算输入年月日就能显示这天在一年中的第几天!代码有点问题,求指教!
#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;
}
我的是一月一号为一年中的第1天,
求解我输入2000 2 29显示的是30天,正确答案!而我输入2000 3 1好显示的为32天,错误答案!
为什么会这样,求高手指教