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(alsoint) zu, oder gerade richtig formatiert (was in deinem Falle fürdoubleaber0.oder0.0wäre, jedoch nicht0.ffürfloat).
-
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.