求大家看看哪里有问题,牛客只能通过90%测试案例

牛客 前天是哪天
给定公元2000到3000年之间的某一天,请给出该天的前一天是哪天。
输入格式year-mm-dd
输出格式year-mm-dd
(四个y不让打出来,用year代替了)
java写的

img

你可以看下这个思路

img


#include<stdio.h>
int p[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int r[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int k[12]={12,1,2,3,4,5,6,7,8,9,10,11};
char week[7][10]={{"Monday"},{"Tuesday"},{"Wednesday"},{"Thursday"},{"Friday"},{"Saturday"},{"Sunday"}};
int isrunnian(int year){
    if(year%4==0&&year%100!=0||year%400==0)
        return 1;
    else
    return 0;
}
int main(){
    int year,month,day,a,b,c,w;
    scanf("%d-%d-%d",&year,&month,&day);
    day-=2;
    if(day<=0){
        if(isrunnian(year))
        day+=r[k[month-1]];
        else
            day+=p[k[month-1]];
        month--;
    if(month==0){
        month=12;
        year--;
    }
    }

    printf("%04d-%02d-%02d\n",year,month,day);
}

闰年,闰月