谁帮我看一下这段程序为什么输出的年份不对啊?

#include <stdio.h>
#include <stdbool.h>

struct date{
int month;
int day;
int year;
};

bool isLeap(struct date d);
int numberofDays(struct date d);

int main(int argc,char const *argv[])
{
struct date today,tomorrow;
printf("Enter today's date (mm dd yyyy):");
scanf("%i %i %i",&today.month,&today.day,&today.year);

if(today.day!=numberofDays(today)){
tomorrow.day=today.day+1;
tomorrow.month=today.month;
tomorrow.year=tomorrow.year;
}else if(today.month==12){
tomorrow.day=1;
tomorrow.month=1;
tomorrow.year=tomorrow.year+1;
}else{
tomorrow.day=1;
tomorrow.month=today.month+1;
tomorrow.year=tomorrow.year;
}

printf("Tomorrow 's date is %i-%i-%i.\n",tomorrow.year,tomorrow.month,tomorrow.day);
return 0;
}
int numberofDays(struct date d)
{
int days;
const int daysPerMonth[12] ={31,28,31,30,31,30,31,31,30,31,30,31};
if(d.month==2&&isLeap(d))
days=29;
else days=daysPerMonth[d.month-1];
return days;
}

bool isLeap(struct date d)
{
bool leap=false;
if ((d.year%4==0&& d.year%100!=0)||d.year%400==0)
leap=true;
return leap;

}

大家正在搜