C++嵌套if语句问题:输入任意数据均输出所有结果,求修正
问题解决:C++温度判断程序修正
你的代码问题在于使用了多个独立的if语句而非嵌套结构,导致多个条件会被同时触发;同时最后一个else存在语法错误,使得"it is hot"总会被打印。以下是符合要求的修正代码,使用嵌套if/else实现互斥的分支判断:
#include <iostream> using namespace std; int main() { int temp; cout << "请输入温度:" << endl; cin >> temp; if (temp < 40) { cout << "it is cold\n"; } else { if (temp < 60) { cout << "it is chilly\n"; } else { if (temp < 80) { cout << "it is nice\n"; } else { cout << "it is hot\n"; } } } return 0; }
代码说明
- 采用嵌套
if/else结构,确保每个温度区间只会触发一个输出语句,彻底解决多条件同时触发的问题。 - 外层
else承接所有temp >=40的情况,内层依次细分区间,完全符合题目禁止使用else if的要求。 - 修正了原代码中
else的语法错误,移除了多余的(temp >80)判断——else本身就代表前面条件不成立的情况,即temp >=80。
内容的提问来源于stack exchange,提问作者Ann Baumgart
相关产品推荐
相关产品推荐

