我想要制作一个日程计数器来计算两个日期之间的日期,但检查并不像我想的那样工作。问题是它传递了我给它的任何值,例如它认为一个月内有41天。谢谢你的帮助!
cout << "Please give the two dates!\n";
cin >> year1 >> m1 >> d1 >> year2 >> m2 >> d2;
if (1 <= year1 <= 9999 &&
1 <= year2 <= 9999 &&
1 <= m1 <= 12 &&
1 <= m2 <= 12 &&
1 <= d1 <= 31 &&
1 <= d2 <= 31 )
{
cout << "ok";
}
else
{
cout << "notOK";
}
答案 0 :(得分:3)
考虑
1<=year1<=9999
应为1<=year1&&year1<=9999
原因是C ++不是数学语言。
1<=year1
是一个返回布尔值的表达式,可以是true
或false
,然后将布尔结果与9999进行比较是错误的。
其他行也有这个问题,纠正它。
答案 1 :(得分:1)
试试这个:
cout << "Please give the two dates!\n";
cin >> year1 >> m1 >> d1 >> year2 >> m2 >> d2;
if ((1 <= year1) && (year1 <= 9999) &&
((1 <= year2) && (year2 <= 9999)) &&
((1 <= m1) && (m1 <= 12)) &&
((1 <= m2) && (m2 <= 12)) &&
((1 <= d1) && (d1 <= 31)) &&
((1 <= d2) && (d2 <= 31)))
{
cout << "ok\n";
}
else
{
cout << "notOK";
}
}