杭电ACM第2008题 我哪错了

来源:百度知道 编辑:UC知道 时间:2024/06/20 04:13:23
#include<stdio.h>
int main()
{
int day,month,year,_day=0,leap=0,i,Day;
while(scanf("%d/%d/%d",&year,&month,&day)!=EOF)
{
if((year%400==0)||(year%4==0&&year%100!=0))
leap=1;
for(i=1;i<month;i++)
{
switch(i)
{
case 0:Day=0;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:Day=31;break;
case 4:
case 6:
case 9:
case 11:Day=30;break;
case 2:
if(leap)
Day=29;
else
Day=28;
break;
}
_day=_day+Day;
}
_day=_day+day;
printf("%d\n",_day);
_day=0;
}
return 0;
}
我是用C语言编的
我试了几个都对的 但他说我错了
告诉我哪错了 谢谢

你这是2005吧
错在
if((year%400==0)||(year%4==0&&year%100!=0))
leap=1;

如果你的leap在一次循环中=1,你觉得按你的代码在以后的循环中leap能变为0吗?

所以加上
else leap=0;