Endlos-Addierer



  • Hallo,
    Ich möchte ein Programm schreiben, in welches ich Zahlen eingebe und das Programm sie am Ende alle zusammenzählt. Ich habe es bis jetzt nur hinbekommen, dass ich soviele Zahlen eingeben kann, wie ich Variablen angelegt habe. Das Programm soll aber so viele Variablen anlegen, wie nötig sind. Bis jetzt bin ich nur soweit gekommen:

    float g1;
         cin >> g1;      
         float g2;
         cin >> g2;
         float g3;
         cin >> g3;
         float g4;
         cin >> g4;
         float gg(g1 + g2 + g3 + g4);
         cout << "Gesamt: " << gg;
    

    Jetzt kann ich aber nur 4 Zahlen eingeben.
    Gibt es eine Möglichkeit, dass ich Zahlen eingebe und wenn ich keine Zahl mehr eingebe, dann gibt er die Gesamtzahl aus?



  • Ja. Mach es mit std::vector , das ist ein Container für ein dynamisches Array. Dann kann man zur Laufzeit Werte hinzufügen.

    Aber ich weiss jetzt nicht, ob das vielleicht etwas zu weit geht... Da du nicht auf die Idee gekommen bist, Arrays zu benutzen, schliesse ich mal daraus, dass du sie noch nicht kennst. Vielleicht solltest du dich zuerst mit diesen befassen.



  • warum den erst am ende zusammen zählen ?

    long double sum = 0.f;
    long double val = 0.f;
    while (cin >> val)
        sum += val;
    cout << val;
    


  • #include <iostream>
    #include <string>
    #include <sstream>
    
    using namespace std;
    
    int main()
    {
        int total = 0;
        string input = "";
    
        while( true )
        {
            cout << "Gebe Zahl ein!" << endl;
            cin >> input;
    
            if( input == "=" ) break;
    
            istringstream converter(input);
            int buf;
    
            converter >> buf;
            if( !converter.eof() ){
                cout << "Das war aber kein Integer!" << endl;
                continue;
            }
    
            total += buf;
            cout << "Addiere " << buf << endl;
        }
    
        cout << "Gesamtwert: " << total << endl;
    }
    


  • long double sum = 0.f;
    long double val = 0.f;
    while (cin >> val)
        sum += val;
    cout << val;
    

    Richtig wäre am Ende aber ein

    cout<<sum;
    

    😃



  • Ja mit dem Code von blablablah klappts.
    Dankeschön für die schnellen Antworten.

    Grüße aus Hamburg

    Tobias



  • tcpp schrieb:

    Ja mit dem Code von blablablah klappts.
    Dankeschön für die schnellen Antworten.

    Grüße aus Hamburg

    Tobias

    Ey du hast meinen Nick richtig geschrieben!!! 😃 😃 *G*



  • copy & paste 😉



  • Wenn es nur darum geht, die Summe zu bilden, braucht man natürlich schon kein Array. Jedoch würde ich dir raten, dich vielleicht doch mal mit Arrays (und vielleicht auch STL-Containern) befassen... 😉

    Kleines Detail am Rande:

    helferlein schrieb:

    long double sum = 0.f;
    long double val = 0.f;
    

    Merkwürdig... Die meisten Leute weisen bei Literalen entweder immer 0 (also int ) zu, oder gerade richtig formatiert (was in deinem Falle für double aber 0. oder 0.0 wäre, jedoch nicht 0.f für float ).



  • das .f ist ein tippfehler, in letzter zeit arbeite ich nurnoch mit denen.
    deshalb bekommt bei mir alles ein .f was bei 3 nicht auf den bäumen ist.


Anmelden zum Antworten