Heim  >  Artikel  >  Backend-Entwicklung  >  Warum gibt mein Programm zur Umrechnung von C Fahrenheit in Celsius immer 0 aus?

Warum gibt mein Programm zur Umrechnung von C Fahrenheit in Celsius immer 0 aus?

Susan Sarandon
Susan SarandonOriginal
2024-10-25 03:57:30712Durchsuche

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

C-Programm stößt auf unerwartetes Konvertierungsergebnis: Abweichung von Fahrenheit zu Celsius

Ein C-Programm, das Fahrenheit in Celsius umrechnen soll, stößt auf eine unerwartete Ausgabe von Null. Hier ist der Code zusammen mit dem Problem:

Codeausschnitt:

<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>

Problemzusammenfassung:

Bei der Ausführung rechnet das Programm Celsius nicht immer genau in Fahrenheit um gibt 0 aus.

Problemanalyse:

Das Problem liegt in der Formel, die zur Berechnung von Fahrenheit verwendet wird: Fahrenheit = (5/9) * (Celsius 32).

In diesem Ausdruck:

  • 5/9 wird als ganzzahlige Division berechnet. Wenn in C beide Operanden in einer Divisionsoperation Ganzzahlen sind, ist das Ergebnis ebenfalls eine Ganzzahl.
  • Eine Ganzzahldivision schneidet das Ergebnis ab, was bedeutet, dass alle Bruchteile verworfen werden.

Daher , 5/9 ergibt 0 und die resultierende Fahrenheit-Temperatur ist ebenfalls 0, unabhängig vom eingegebenen Celsius-Wert.

Lösung:

Um das Problem zu beheben, muss sichergestellt werden, dass die Division Die Operation führt zu einer Gleitkommazahl. Dies kann erreicht werden, indem einer der Operanden in einen Gleitkommatyp konvertiert wird. Der korrigierte Code:

<code class="cpp">fahrenheit = (5.0/9) * (celsius + 32);</code>

Mit dieser Änderung wird 5.0/9 zu einer Gleitkommadivision, wobei der Bruchteil erhalten bleibt und die korrekte Fahrenheit-Umrechnung erfolgt.

Das obige ist der detaillierte Inhalt vonWarum gibt mein Programm zur Umrechnung von C Fahrenheit in Celsius immer 0 aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn