我是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;
}
答案 0 :(得分:1)
也许您只需要将incorrecta=false;
放在第一个if
之前,以便正确初始化变量。如果没有满足任何条件,那么最后它仍然是假的。