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

时间:2014-10-14 19:50:15

标签: c++ boolean codeblocks

我是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;
}

1 个答案:

答案 0 :(得分:1)

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