使用一个用bool c++验证日期的程序

Use a program that validates dates with bool c++?

本文关键字:验证 c++ 日期 程序 bool 一个      更新时间:2023-10-16

我是C++编程的新手,没有做过任何布尔运算。我在这个节目中犯了哪些错误?提前感谢!

//INPUT: Enter a date in the format DDMMYYYY, for example 14102014
//OUTPUT: Says if the date is correct or no
#include <iostream>
using namespace std;
int main()
{
    bool incorrecta;
    cout << "ENTER A DATE:" << endl;
    int data;
    cin>> data;
    int any= data%10000;
    int dmes= data/10000;
    int dia= dmes/100;
    int mes= dmes%100;

    if (mes>12 or mes<1) incorrecta=true;
    else if (any>3399 or any<100) incorrecta=true;
    else if ((dia<1 or dia>31) and (mes==1 or mes==5 or mes==3 or mes==7 or mes==8 or mes==10 or mes==12)) incorrecta=true;
    else if ((dia<1 or dia>30) and (mes==4 or mes==6 or mes==9 or mes==11)) cout<< "THE DATE IS INCORRECT"<< endl;
    else if (mes==2){
        if(any%4==0 and (any%100!=0 or any%400==0)) cout <<"THE DATE IS CORRECT" <<endl;
        else incorrecta=true;
        }

    if (incorrecta==true) cout<< "THE DATE IS INCORRECT"<< endl;
    else  cout <<"THE DATE IS CORRECT" <<endl;
    return 0;
}

也许您所需要的只是将incorrecta=false;放在第一个if之前,以便正确初始化变量。如果所有条件都不满足,那么最终它仍然是错误的。