输入年月日 计算该日是该年的第几天?解决方案

输入年月日 计算该日是该年的第几天?
本人新手,不知道怎么写,大家给点思路啊!

------解决方案--------------------
首先判断改年是润年还是平年,然后定义一个长度为12的数组char month[12]={31,0,31,30,31,30,31,31,30,31,30,31};初始化每个月的天数,
2月初始化为0,更具平润年判断加上28或者29~~
然后再加上你输入的是几号,就可以得出是改年的第几天了~~

再不懂,找我,我给你写个~~
------解决方案--------------------
按这种格式输入:
1985/1/20
2006/3/12

C/C++ code

#include"stdio.h"
int leap(int a)  //判断闰年
{
if((a%4==0&&a%100!=0)||(a%400==0))
return 1;
else
return 0;
}
int main()
{
int a,b,c,d;
while(scanf("%d/%d/%d",&a,&b,&c)==3)
{
d=leap(a);
switch(b)
{
case 1:printf("%d\n",c);break;
case 2:printf("%d\n",c+31);break;
case 3:printf("%d\n",(d==1?60+c:59+c));break;
case 4:printf("%d\n",(d==1?91+c:90+c));break;
case 5:printf("%d\n",(d==1?121+c:120+c));break;
case 6:printf("%d\n",(d==1?152+c:151+c));break;
case 7:printf("%d\n",(d==1?182+c:181+c));break;
case 8:printf("%d\n",(d==1?213+c:212+c));break;
case 9:printf("%d\n",(d==1?244+c:243+c));break;
case 10:printf("%d\n",(d==1?274+c:273+c));break;
case 11:printf("%d\n",(d==1?305+c:304+c));break;
case 12:printf("%d\n",(d==1?335+c:334+c));break;
}
}
return 0;
}