C++使用if-else结构实现热导率输出匹配对应单位字符串
C++热导率计算代码修复方案
原代码存在的问题
- 未读取热导率
K的用户输入值,直接输出会得到未初始化的垃圾值 - 最终输出行直接打印整型变量
KUnit,没有做单位文本映射,导致输出0/1而非单位名称
完整修改后代码
#include <iostream> #include <iomanip> using namespace std; int main() { int KUnit; float K; cout << "输入0选择国际单位制,输入1选择英制单位:"; cin >> KUnit; // 新增热导率数值输入逻辑 cout << "请输入热导率数值:"; cin >> K; if (KUnit == 0) { cout << "k = " << K << " watts/mK" << endl; } else if (KUnit == 1) { cout << "k = " << K << " BTU/hr-ft F deg" << endl; K = K * 0.5779; } else { cout << "无效单位,请重试"; return 1; } // 用if-else结构判断输出对应单位 cout << "热导率 " << K; if (KUnit == 0) { cout << " watts/mK" << endl; } else { cout << " BTU/hr-ft F deg" << endl; } return 0; }
核心修改说明
- 新增热导率数值输入步骤,保证输出数值有效
- 替换原代码中直接拼接
KUnit的输出逻辑,通过if-else分支匹配对应单位文本,完全满足需求 - 未改动原有单位转换逻辑,如果你需要输出转换后的数值对应的单位,可以自行调整单位输出的分支内容
内容的提问来源于stack exchange,提问作者yassssssssssss
相关产品推荐
相关产品推荐

