この C プログラムは華氏を摂氏に誤って変換するのはなぜですか?
華氏の温度を摂氏に変換しようとする C プログラムが混乱を引き起こしています。不正な 0 が出力されました。コードを詳しく調べて問題を説明しましょう。
プログラムは、必要な標準入出力ライブラリを組み込むことから始まり、いくつかの変数を定義します。
<code class="cpp">#include <iostream> using namespace std; float celsius; float fahrenheit;</code>
コード次に、ユーザーに摂氏温度を入力し、それを摂氏変数に保存するよう求めます。
<code class="cpp">cout << "Enter Celsius temperature: "; cin >> celsius;</code>
摂氏を華氏に変換する計算は次のとおりです。
<code class="cpp">fahrenheit = (5/9) * (celsius + 32);</code>
ここで問題が発生します。 。式 (5/9) はデフォルトで整数の除算を実行し、結果は 0 になります。正しい小数の結果を取得するには、オペランドの 1 つを浮動小数点型にキャストする必要があります。
<code class="cpp">fahrenheit = (5.0/9) * (celsius + 32);</code>
浮動小数点除算では、計算が正しく行われ、小数部分が保持されることを確認します。
プログラムは華氏温度を出力して終了します。
<code class="cpp">cout << "Fahrenheit = " << fahrenheit << endl;</code>
この修正を行うことで、プログラムはユーザーが指定した摂氏の値に基づいて華氏温度を正しく変換して表示するようになりました。
以上が華氏から摂氏への変換プログラムが 0 を出力するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。