首页 > 解决方案 > c++ 如果检查不能正常工作

问题描述

我正在尝试制作一个计日器来计算两个日期之间的天数,但支票并不能如我所愿。问题是它传递了我给它的任何值,例如它认为一个月有 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";
    }

标签: c++if-statement

解决方案


考虑

1<=year1<=9999

应该1<=year1&&year1<=9999

原因是 C++ 不是数学语言。

1<=year1

是一个返回布尔值的表达式,要么是要么truefalse然后将布尔结果与 9999 进行比较是错误的。

其他线路也有这个问题,纠正一下。


推荐阅读