C++区间判断程序输入75、100时输出不符合预期问题咨询
问题原因分析
- 核心错误是所有区间判断错误使用了逻辑或(||),应该改为逻辑与(&&)。逻辑或只要满足其中一个条件整个表达式就为真,比如只要输入数值大于25,第二个
else if的number > 25就会成立,后续的区间判断完全不会执行,所有大于25的数都会错误进入「25-50」分支,这就是输入75、100结果不符合预期的直接原因。 - 第一个分支的
number <=25 || number ==0存在冗余,number <=25本身已经包含了等于0的情况,无需额外判断。 - 原有判断缺少对输入数值是否>=0的校验,负数也会错误进入第一个区间分支。
修正后的完整代码
/* 输入0-100之间的任意整数,程序会判断数字所属的四个区间并输出对应提示 */ #include <iostream> using namespace std; int main() { int number; cout << "请输入0-100之间的整数\n"; cin >> number; if(number >= 0 && number <= 25) { cout << "你的数字属于0-25区间\n"; } else if (number > 25 && number <= 50) { cout << "你的数字属于25-50区间\n"; } else if (number > 50 && number <= 75) { cout << "你的数字属于50-75区间\n"; } else if(number >75 && number <= 100) { cout << "你的数字属于75-100区间\n"; } else { cout<<"数字不在0-100区间内\n"; } return 0; }
验证说明
修正后所有区间需要同时满足上下限条件才会进入对应分支:
- 输入75会命中
number >50 && number <=75的条件,输出50-75区间提示 - 输入100会命中
number >75 && number <=100的条件,输出75-100区间提示 - 负数、大于100的数值会进入兜底分支,输出范围错误提示,完全符合预期功能
内容的提问来源于stack exchange,提问作者noob_in_coding
相关产品推荐
相关产品推荐

