c++ - 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";
}
解决方案
考虑
1<=year1<=9999
应该1<=year1&&year1<=9999
原因是 C++ 不是数学语言。
1<=year1
是一个返回布尔值的表达式,要么是要么true
,false
然后将布尔结果与 9999 进行比较是错误的。
其他线路也有这个问题,纠正一下。
推荐阅读
- mysql - “调用未定义的方法 Illuminate\Support\Facades\File::save()”
- javascript - 如何在多边形上显示标签和图标?
- amazon-web-services - 我正在实施 AWS 实例调度程序,如果我想保持实例/环境正常运行,尽管它计划停止运行,我该怎么办?
- javascript - i can not Specify a variable out of the event
- php - 如何仅更新 Laravel 表单中的一个输入?
- c# - 如何在我的窗口服务应用程序中修复我的 Web API 调用的 400 错误请求
- makefile - *** 尽管使用了制表符,但缺少分隔符
- javascript - 如何在mongodb中加入两个表并推入数组
- python - Keras 在第一个纪元结束时显示形状错误
- azure-active-directory - Microsoft Graph API 获取用户拥有的 AAD 组列表