这段C语言温度转换代码为什么既无输出也不报错?
代码无输出且无报错的根因
- 你代码中的
fahr == lower;行存在逻辑错误:==是C语言的相等比较运算符,仅会判断fahr和lower的值是否相等,不会执行赋值操作。 - 你的
fahr变量仅做了声明,没有被初始化赋值,会保留对应内存地址中的随机垃圾值,绝大多数情况下这个值会远大于你设定的上限upper=100,因此while(fahr <= upper)的判断条件直接不成立,循环体一次都不会执行,自然没有打印输出。 - 这段代码不存在语法错误,完全符合C语言的语法规范,因此编译器不会抛出任何报错提示。
修复方案
将错误行的比较运算符改为赋值运算符即可:
// 将原代码的 fahr == lower; 替换为以下内容 fahr = lower;
修改后代码即可正常遍历0到100的华氏度区间,输出对应的摄氏度转换结果。
内容的提问来源于stack exchange,提问作者MK Kid
相关产品推荐
相关产品推荐

