编辑代码

#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 = today.year;
    }else if(today.month == 12){
        tomorrow.day = 1;
        tomorrow.month = 1;
        tomorrow.year = today.year+1;
    }else{
        tomorrow.day = 1;
        tomorrow.month = today.month+1;
        tomorrow.year = today.year;
    }

    printf("Tomorrow's date is %i-%i-%i",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;
}