请问为什么这个函数无法判断1888为闰年且2月份无法输入成功为29天?


           
#include <iostream>
using namespace std;
struct time {
    unsigned int year;
    unsigned int month;
    unsigned int day;
    unsigned int hour;
    unsigned int min;
    unsigned int sec;
}nowtime;
int main(void)//void main的规范写法 
{
    cout << "please input year: " << endl;
    cin >>nowtime.year;
    cout << "please input month: " << endl;
    while(1){
    cin >>nowtime.month;
    if(nowtime.month>12||nowtime.month<1)
        cout<<"请重新输入正确的月份!"<<endl;
    else break;
    }
    cout << "please input day: " << endl;
    while(1){
    cin >>nowtime.day;//重要部分
    if((nowtime.year%400==0||(nowtime.year%4==0 && nowtime.year%100!=0)) && (nowtime.month==2&&(nowtime.day>29||nowtime.day<1)))//闰年
        cout<<"请重新输入正确的天数!"<<endl;
    else if((nowtime.year%400!=0||(nowtime.year%4!=0 && nowtime.year%100==0)) && (nowtime.month==2&&(nowtime.day>28||nowtime.day<1)))//前半段实现非闰年 
        cout<<"请重新输入正确的天数!"<<endl;
    else break;
    }
    cout << "please input hour: " << endl; 
     while(1){
         cin >>nowtime.hour;
        if(nowtime.hour>24||nowtime.hour<0)
            cout<<"请重新输入正确的小时!"<<endl;
        else break;
     }
    cout << "please input min: " << endl;
    while(1){
        cin >>nowtime.min;
        if(nowtime.min>60||nowtime.min<0)
            cout<<"请重新输入正确的时分!"<<endl;
        else break;
    }
    cout << "please input sec: " << endl;
    while(1){
        cin >>nowtime.sec;
        if(nowtime.sec>60||nowtime.sec<1)
            cout<<"请重新输入正确的秒!"<<endl;
        else break;
    }
    cout<<"The bjtime is:"<<nowtime.year<<"/"<<nowtime.month<<"/"<<nowtime.day;
    cout<<" "<<nowtime.hour<<":"<<nowtime.min<<":"<<nowtime.sec<<endl;
}

else if((nowtime.year%400!=0||(nowtime.year%4!=0 && nowtime.year%100==0)) && (nowtime.month==2&&(nowtime.day>28||nowtime.day<1)))//前半段实现非闰年

这个非闰年判断是错误的,并不是上面闰年判断的取反啊

闰年判断是if(nowtime.year%400==0||(nowtime.year%4==0 && nowtime.year%100!=0)
那么非闰年应该是 if(nowtime.year %400 != 0 && (nowtime.year % 4 != 0 || nowtime.year %100 == 0))

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632