求前天的题目?请问哪里错了?
给定公元2000年到公元3000年之间的某一天,请你给出该天的前天是哪一天.
#include<stdio.h>
int main(){
int y,m,d;
scanf("%d %02d %02d\n",&y,&m,&d);
switch(m){
case 2:
case 8:
case 4:
case 6:
case 9:
case 11:{if(d==1)
printf("%d-%02d-%d",y,m-1,30);
else if(d==2)
printf("%d-%02d-%d",y,m-1,31);
else
printf("%d-%02d-%02d",y,m,d-2);
break;
}
case 7:
case 10:
case 12:{if(d==1)
printf("%d-%02d-%d",y,m-1,29);
else if(d==2)
printf("%d-%02d-%d",y,m-1,30);
else
printf("%d-%02d-%02d",y,m,d-2);
break;
}
case 3:{if(y%400==0||y%4==0&&!(y%100==0)){
if(d==1)
printf("%d-%02d-%d",y,m-1,28);
else if(d==2)
printf("%d-%02d-%d",y,m-1,29);
else
printf("%d-%02d-%02d",y,m,d-2);
break;}
else{
if(d==1)
printf("%d-%02d-%d",y,m-1,27);
else if(d==2)
printf("%d-%02d-%d",y,m-1,28);
else
printf("%d-%02d-%02d",y,m,d-2);
break;
}
}
case 1:{if(d==1)
printf("%d-%02d-%d",y-1,12,29);
else if(d==2)
printf("%d-%02d-%d",y-1,12,30);
else
printf("%d-%02d-%02d",y,m,d-2);
break;
}
}
return 0;
}