+1 Daumen
787 Aufrufe

Könnt ihr mir bei dieser Aufgabe helfen bzw. das Programm verbessern bzw. optimieren.

Schreiben Sie ein C++ Programm, das die kleinste positive ganze Zahl ermittelt, die nicht im Datentyp float darstellbar ist (Bitte keine Compiler- Optimierungen verwenden).
Begründen Sie, warum diese Zahl nicht als Float-Wert dargestellt werden kann, in dem Sie die 32-Bit-IEEE-Darstellung der
Vorgänger- und Nachfolgerzahl angeben.


Mein Ansatz:

#include <iostream>

using namespace std;


int main() {
   
    int i = 1;
    float f = 1;
   
    while ((int)f == i)
    {
        i++;
        f = i;
    }
   
    cout << "Die Zahl: " << i << "kann nicht dargestellt werden." << endl; // Gleitkommazahl

    return 0;
}


Avatar von

1 Antwort

0 Daumen
Avatar von

Ist mein Code richtig?

Er macht das, was er soll und liefert 16777217. Vlt. noch ein Leerzeichen vor "'kann [...]'" einfügen.

f = i; brauche ich diesen Befehl unter der while Schleife oder macht es keinen Unterschied, da es schon in der while Schleife steht

while ((int)f == i)

Probier es doch aus ;)

Natürlich braucht man die Anweisung f=i; denn while( f == i ) ist im Gegensatz dazu nur eine Vergleichsoperation.

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

0 Daumen
0 Antworten
Gefragt 19 Apr 2018 von Gast
0 Daumen
1 Antwort

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community