#include<stdio.h>
void main()
{int y,m,d,r,feb,year;
printf("请按“yyyy-mm-dd”输入日期\n");
scanf("%d-%d-%d",&y,&m,&d);
r=d;
if(m<1|| m>12)
{printf("月份错误\n");
return;
}
year=y>0?1:0;
switch(year){
case 0:printf("年份错误");return;
case 1:if (year%400==0||year%4==0&&year%100!=0)
feb=29;
else feb=28;
}
if(d>31||(m==4||m==6||m==9||m==11)&&d>30||(m==2)&&m>feb)
{printf("日期错误");
return;
}
switch (m-1){
case 11: r+=30;
case 10: r+=31;
case 9: r+=30;
case 8: r+=31;
case 7: r+=31;
case 6: r+=30;
case 5: r+=31;
case 4: r+=30;
case 3: r+=31;
case 2: r+=feb;
case 1: r+=31;
default: r=d;
printf("%d年%d月%d日是%d年第%d天",&y,&m,&d,&y,&r);
}
}
求问这段代码到底错误在哪里?为什么最后显示出来的年月日是很大的数字