神奇的事情 一模一样的编程却还是会出错
main(){ int i,week=0,m=0,y=0,md=0,yd=0,day=0;
printf("输入一个年份和月份:");
scanf("%d %d",&y,&m);
for(i=1990;i<y;i++)
{if(i%4==0&&i%100!=0||i%400==0)
{yd+=366;}
else
yd+=365;
}
for(i=1;i<m;i++)
{switch(i)
{case 2:
if(i%4==0 && i%100!=0 || i%400==0)
md+=29;
else
md+=28;
break;
case 4: case 6: case 9: case 11:
md+=30;
break;
default :
md+=31;
}
}
week=(yd+md)%7;
printf("一\t二\t三\t四\t五\t六\t日\n");
for(i=1;i<=week;i++)
{
printf("\t");
}
switch(m)
{
case 2:
if(i%4==0&&i%100!=0||i%400==0)
day=29;
else
day=28;
break;
case 4: case 6: case 9: case 11:
day=30;
break;
default :
day=31;
}
for(i=1;i<=day;i++)
{
printf("%d\t",i);
if((week+i)%7==0)
printf("\n");
}
}
这个是输入年月输出日期的编程,我从论坛看到的,然后复制下来,自己再按着编程写的,可是2012年2月前都是对的,到3月前面就突然少了一天,我怎么也找不出错误,是什么问题来的?麻烦大家帮忙解答一下