````c
/*定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。
输入
年月日
输出
当年第几天
样例输入
2000 12 31
样例输出
366
*/
#includestruct Date
{
int year;
int month;
int day;
};
struct Date date;
int main()
{
int count(int a);
//获取输入的年月日
scanf("%d%d%d",&date.year,&date.month,&date.day);
if((date.month>12) || (date.month <= 0 ) || (date.day>=32))//判断用户是否输入错误
{
printf("error");
return 0;
}
// 判断是否为闰年,闰年的2月为29天,否则为28天
if(date.year%4==0&&date.year%100==0||date.year%400==0)
{
// 说明是闰年
if(date.month==2 && date.day==28)//判断用户是否输入错误
{
printf("error");
return 0;
}
printf("%d",date.day+count(date.month-1));
}
else
{
if(date.month==2 && date.day==29)//判断用户是否输入错误
{
printf("error");
return 0;
}
printf("%d",date.day+count(date.month-1)-1);
}
}
int count(int a)
{
int count=0;
for(int i=1;i<=a;i++)
{
switch(i)
{
case 1:count+=31;break;
case 2:count+=29;break;
case 3:count+=31;break;
case 4:count+=30;break;
case 5:count+=31;break;
case 6:count+=30;break;
case 7:count+=31;break;
case 8:count+=31;break;
case 9:count+=30;break;
case 10:count+=31;break;
case 11:count+=30;break;
case 12:count+=31;break;
}
}
return count;
}
````