首页 >后端开发 >C++ >为什么我的华氏温度到摄氏度转换程序总是输出0?

为什么我的华氏温度到摄氏度转换程序总是输出0?

Susan Sarandon
Susan Sarandon原创
2024-10-25 03:57:30781浏览

Why Does My C   Fahrenheit to Celsius Conversion Program Always Output 0?

C 程序遇到意外的转换结果:华氏温度到摄氏温度的差异

设计用于将华氏温度转换为摄氏温度的 C 程序遇到意外的输出零。以下是包含问题的代码:

代码片段:

<code class="cpp">#include <iostream>
using namespace std;

int main() {
    float celsius;
    float fahrenheit;

    cout << "Enter Celsius temperature: ";
    cin >> celsius;
    fahrenheit = (5/9) * (celsius + 32);
    cout << "Fahrenheit = " << fahrenheit << endl;

    return 0;
}</code>

问题摘要:

执行后,程序无法准确地将摄氏度转换为华氏度,并且始终输出 0.

问题分析:

问题在于用于计算华氏温度的公式:华氏温度 = (5/9) * (摄氏度 32)。

在此表达式:

  • 5/9 被计算为整数除法。在 C 中,如果除法运算中的两个操作数都是整数,则结果也是整数。
  • 整数除法会截断结果,这意味着任何小数部分都会被丢弃。

因此,5/9 的计算结果为 0,无论输入的摄氏温度值如何,所得的华氏温度也为 0。

解决方案:

要解决此问题,需要确保除法运算结果为浮点数。这可以通过将操作数之一转换为浮点类型来实现。更正后的代码:

<code class="cpp">fahrenheit = (5.0/9) * (celsius + 32);</code>

通过此修改,5.0/9 成为浮点除法,保留小数部分并产生正确的华氏度转换。

以上是为什么我的华氏温度到摄氏度转换程序总是输出0?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn