Maison > développement back-end > C++ > le corps du texte

Pourquoi mon programme de conversion C Fahrenheit en Celsius affiche-t-il toujours 0 ?

Susan Sarandon
Libérer: 2024-10-25 03:57:30
original
624 Les gens l'ont consulté

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

Le programme C rencontre un résultat de conversion inattendu : écart Fahrenheit en Celsius

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 :

Extrait de code :

<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>
Copier après la connexion

Résumé du problème :

Lors de l'exécution, le programme ne convertit pas avec précision les degrés Celsius en Fahrenheit et toujours sorties 0.

Analyse du problème :

Le problème réside dans la formule utilisée pour calculer Fahrenheit : fahrenheit = (5/9) * (celsius 32).

Dans ce expression :

  • 5/9 est calculé comme une division entière. En C , si les deux opérandes d'une opération de division sont des entiers, le résultat est également un entier.
  • La division entière tronque le résultat, ce qui signifie que toute partie fractionnaire est ignorée.

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.

Solution :

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!