有错的C++代码,谁能帮我看看

这个代码是怎么回事,有错


```c++
#include
using namespace std;
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int y,m,d;
bool runpinnian(int y){ 
    if(y%4==0&&y%100!=0||y%400==0){ 
        return true; 
    } 
    return false; 
} 
 int main(){
    scanf("%d-%d-%d",&y,&m,&d);
    d+=1;
    if(y%4==0&&y%100!=0||y%400==0){
        a[3]=29;
    }
    else{
        a[3]=28;
    }
    if(a[2]==31||a[4]==31||a[5]==30||a[6]==31||a[7]==30||a[8]==31||a[9]==31||a[10]==30||a[11]==31||a[12]==30||a[13]==31){
        m+=1;
        d=1;
    }
    if(y%4==0&&y%100!=0||y%400==0&&m==2&&d==29){
        d=1;
        m+=1;
    }
    else if(y%4!=0&&y%100!=0||y%400!=0&&m==2&&d==28){
        d=1;
        m+=1;
    }
    cout<"-"<"-"<return 0;
}

```

你这是要实现啥功能?是不是计算输入的日期+1天后的日期
main里的第二个if看懵了。a的值本身就是赋值好的,不需要判断。

#include <iostream>
using namespace std;
int a[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int y, m, d;

int runpinnian(int y)
{
    if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)
    {
        return 1;
    }
    return 0;
}
int main()
{
    scanf("%d-%d-%d", &y, &m, &d);
    d += 1;

    // if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)
    // {
    //     a[3] = 29;
    // }
    // else
    // {
    //     a[3] = 28;
    // }
    a[2] += runpinnian(y); // 闰年加1// if (a[2] == 31 || a[4] == 31 || a[5] == 30 || a[6] == 31 || a[7] == 30 || a[8] == 31 || a[9] == 31 || a[10] == 30 || a[11] == 31 || a[12] == 30 || a[13] == 31)
    if (d > a[m])//日期超出后月增加
    {
        m += 1;
        d = 1;
     }
    // if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0 && m == 2 && d == 29)
    // {
    //     d = 1;
    //     m += 1;
    // }
    // else if (y % 4 != 0 && y % 100 != 0 || y % 400 != 0 && m == 2 && d == 28)
    // {
    //     d = 1;
    //     m += 1;
    // }
    if(m>12)//月超出后年增加
    {
        m = 1;
        y += 1;
    }
    cout << y << "-" << m << "-" << d;
    return 0;
}

跪求!!!