Un programme C conçu pour convertir Fahrenheit en Celsius rencontre une sortie inattendue de zéro. Voici le code ainsi que le problème :
<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>
Lors de l'exécution, le programme ne convertit pas avec précision les degrés Celsius en Fahrenheit et toujours sorties 0.
Le problème réside dans la formule utilisée pour calculer Fahrenheit : fahrenheit = (5/9) * (celsius 32).
Dans ce expression :
Par conséquent , 5/9 est évalué à 0 et la température Fahrenheit résultante est également 0, quelle que soit la valeur Celsius d'entrée.
Pour résoudre le problème, il faut s'assurer que la division l’opération donne un nombre à virgule flottante. Ceci peut être réalisé en convertissant l'un des opérandes en un type à virgule flottante. Le code corrigé :
<code class="cpp">fahrenheit = (5.0/9) * (celsius + 32);</code>
Avec cette modification, 5.0/9 devient une division à virgule flottante, préservant la partie fractionnaire et donnant la conversion Fahrenheit correcte.
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!