设计用于将华氏温度转换为摄氏温度的 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 的计算结果为 0,无论输入的摄氏温度值如何,所得的华氏温度也为 0。
要解决此问题,需要确保除法运算结果为浮点数。这可以通过将操作数之一转换为浮点类型来实现。更正后的代码:
<code class="cpp">fahrenheit = (5.0/9) * (celsius + 32);</code>
通过此修改,5.0/9 成为浮点除法,保留小数部分并产生正确的华氏度转换。
以上是为什么我的华氏温度到摄氏度转换程序总是输出0?的详细内容。更多信息请关注PHP中文网其他相关文章!