Ergebnis: Immer "-858993460"



  • zensur[i] = zensur[i+1];
    

    zensur{i+1] ist nicht initialisert. das ist dann ein wert wie -858993460.



  • Hm, wie kann ich den dann Zensur [i+1] initialisieren (= Einen Wert zuweisen, korrekt?)?



  • Du liest eine Zensur (nämlich i+1) die Du noch nicht kennst.
    Lies erst alle ein und sortiere dann

    std::sort(zensur, zensur+7);
    


  • Hm, wie kann ich den dann Zensur [i+1] initialisieren (= Einen Wert zuweisen, korrekt?)?

    Kein Kommentar.

    hilfsfeld = zensur[i];
    zensur[i+1] = hilfsfeld;
    
    zensur[i] = zensur[i+1];
    

    oder gleich:

    zensur[i+1] = hilfsfeld = zensur[i];
    
    zensur[i] = zensur[i+1];
    


  • Ah yo, nun fällt es mir wie Schuppen von den Augen, was das Problem ist: Ich wollte zensur[i] einen Wert von einem Array zuweisen, was noch gar nicht definiert wurde/initialisiert wurde. Das kann naütrlich nicht hin hauen (oder anders gesagt: In der IF-Anweisung müssen nur die beiden letzten Zeilen vertauscht werden. Thema gelöst, vielen Dank ! (Man sollte nicht alles blind vom Lehrer abschreiben >_<)
    Int -850 Millionenblabla ist vermutlich der geringste Wert, der durch Int berechnet werden kann?



  • nö, eigentlich "−2.147.483.648"

    "-850 Millionen" ist der Weg des MS-Compilers, Dir zu sagen, daß eine Variable nicht initialisiert wurde. Achte mal drauf, es ist immer -850 Millionen.

    Auch nicht, mit Common Language Runtime Unterstützung 0 und ohne um die 420000.



  • Basinator schrieb:

    Int -850 Millionenblabla ist vermutlich der geringste Wert, der durch Int berechnet werden kann?

    Neun, das wären -2.1 Milliarden. Der Wert -850 Millionen ist nur da zu da, uninitialsisierte Variablen zu melden. Der MS-Compiler legt im Debug-Modus absichtlich lauter -850 Millionen rein. Besondere Einsichten sind zu erwarten, wenn man im Taschenwindowsrechner mal 2^32 addiert und sich in hex anschaut.



  • Benutze doch einfach die Mittel die dir C++ bietet. Dann brauchst Du gar nicht so einen Kram zu schreiben mit denen man sich vertut.

    #include <iostream>
    #include <algorithm>
    #include <iterator>
    #include <vector>
    
    int main()
    {
        const size_t anzahl = 7;
        std::vector<int> zensuren(anzahl);
        for(size_t i(0); i < anzahl; ++i){
            std::cout << "Bitte Zensur " << i+1 << " eingeben:";
            std::cin >> zensuren[i];
        }
    
        std::sort(zensuren.begin(), zensuren.end());
        std::copy(zensuren.begin(), zensuren.end(),
            std::ostream_iterator<int>(std::cout, "\n"));
    
        return 0;
    }
    


  • volkard schrieb:

    Basinator schrieb:

    Int -850 Millionenblabla ist vermutlich der geringste Wert, der durch Int berechnet werden kann?

    Neun, das wären -2.1 Milliarden. Der Wert -850 Millionen ist nur da zu da, uninitialsisierte Variablen zu melden. Der MS-Compiler legt im Debug-Modus absichtlich lauter -850 Millionen rein. Besondere Einsichten sind zu erwarten, wenn man im Taschenwindowsrechner mal 2^32 addiert und sich in hex anschaut.

    200000000



  • khjkhjk schrieb:

    200000000



  • tip: c
    ;o)


Anmelden zum Antworten