Pourquoi ce programme C convertit-il les températures Fahrenheit en Celsius de manière incorrecte ?
Un programme C qui tente de convertir les températures Fahrenheit en Celsius provoque une confusion en raison de une sortie incorrecte de 0. Examinons le code et expliquons le problème.
Le programme commence par inclure la bibliothèque d'entrée et de sortie standard nécessaire et définit certaines variables.
<code class="cpp">#include <iostream> using namespace std; float celsius; float fahrenheit;</code>
Le code invite ensuite l'utilisateur à saisir une température Celsius et la stocke dans la variable Celsius.
<code class="cpp">cout << "Enter Celsius temperature: "; cin >> celsius;</code>
Le calcul pour convertir Celsius en Fahrenheit est le suivant :
<code class="cpp">fahrenheit = (5/9) * (celsius + 32);</code>
Le problème se pose ici . L'expression (5/9) effectue une division entière par défaut, ce qui donne 0. Pour obtenir le résultat fractionnaire correct, nous devons convertir l'un des opérandes en un type à virgule flottante.
<code class="cpp">fahrenheit = (5.0/9) * (celsius + 32);</code>
En utilisant division en virgule flottante, nous nous assurons que le calcul est effectué correctement et que la partie fractionnaire est préservée.
Le programme se termine en affichant la température Fahrenheit.
<code class="cpp">cout << "Fahrenheit = " << fahrenheit << endl;</code>
En effectuant cette correction, le programme convertira et affichera désormais correctement les températures Fahrenheit en fonction des valeurs Celsius fournies par l'utilisateur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!