这个代码是怎么回事,有错
```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;
}
跪求!!!