Rechner | mehrere Zahlen
-
Hallo,
Bisher hab ich immer Rechner auf Konsolenbasis programmiert, die nur zwei Zahlen einlesen können.. jetzt möchte ich, dass mein Programm beliebig viele Zahlen einlesen kann (können ruhig ganzzahlwerte sein).So hab ich mir das vorstellt:
funktion addieren funktion subtrahieren funktion dividieren funktion multiplizieren main 1 addieren 2 subtrahieren 3 dividieren 4 multiplizieren 5 ergebnis zahleneingabe rechenoperation auswählen (1-4) weitere zahleneingabe wieder rechenoperation auswählen ... etc und dann nachher 5 um das ergebnis anzeigen zu lassen
Kann mir da vielleicht einer nen Beispiel Code oder Tipps für geben?
Greetz
-
Pack das ganze doch in eine Schleife ("do {Operator einlesen; Operand einlesen; neuen Wert berechnen} while(Operator!='=');")
(btw, wenn du als Datentyp "char" nimmst, kannst du die Operatoren als +, - , /, *, = darstellen - das sieht übersichtlicher aus ;))
-
Habe das schon hinbekommen:
#include <iostream> using namespace std; int main() { int zahl, ergebnis; int auswahl; cout << "Geben Sie eine Zahl ein: "; cin >> zahl; do { cout << '\n'; cout << "1 Addieren" << endl; cout << "2 Subtrahieren" << endl; cout << "3 Dividieren" << endl; cout << "4 Multiplizieren" << endl; cout << "5 Ergebnis" << endl << endl; cout << "> "; cin >> auswahl; switch(auswahl) { case 1: cout << '\n' << "Geben Sie die naechste Zahl ein: "; cin >> ergebnis; ergebnis=ergebnis+zahl; break; case 2: cout << '\n' << "Geben Sie die naechste Zahl ein: "; cin >> ergebnis; ergebnis=ergebnis-zahl; break; case 3: cout << '\n' << "Geben Sie die naechste Zahl ein: "; cin >> ergebnis; ergebnis=ergebnis/zahl; break; case 4: cout << '\n' << "Geben Sie die naechste Zahl ein: "; cin >> ergebnis; ergebnis=ergebnis*zahl; break; } } while (auswahl!=5); cout << '\n' << "Das Ergebnis lautet: " << ergebnis; getchar(); getchar(); }
Trotzdem thx
-
Sry, war wohl nen bisschen zu voreilig.
Wenn ich 5+5 rechne kommt 10 raus, aber wenn ich 5+5+5 rechne auch(??)
Kann vielleicht einer nen funktionierenden Beispiel-Code posten?
Bzw sagen, was ich falsch mache?Thx schonmal.
PS: Die Fehlerüberprüfungen kommen später
-
Logikfehler:
Du addierst immer die gleichen Zahlen!
Ein wenig verändert:#include <iostream> #include <conio.h> using namespace std; int main() { int zahl, ergebnis; int auswahl; cout << "Geben Sie eine Zahl ein: "; cin >> ergebnis; do { cout << endl; cout << "1 Addieren" << endl; cout << "2 Subtrahieren" << endl; cout << "3 Dividieren" << endl; cout << "4 Multiplizieren" << endl; cout << "5 Ergebnis" << endl << endl; cout << "> "; cin >> auswahl; if(auswahl!=5){ cout << '\n' << "Geben Sie die naechste Zahl ein: "<<endl; cin >> zahl; switch(auswahl) { case 1:{ ergebnis+=zahl; break;} case 2:{ ergebnis-=zahl; break;} case 3:{ ergebnis/=zahl; break;} case 4:{ ergebnis*=zahl; break;} } cout << "Zwischenergebnis: " << ergebnis<< endl; } } while (auswahl!=5); cout << '\n' << "Das Ergebnis lautet: " << ergebnis << endl; getch(); return 0; }
-
Das ich immer die gleiche Zahl addiere, wusste ich.
So blöd bin ich nun auch wieder nichtIch hatte nur im mom keine Ahnung, wie ich's machen sollte..
Wahrscheinlich zu kompliziert gedacht.Danke für dein Code-Beispiel!
-
Das ich immer die gleiche Zahl addiere, wusste ich.
So blöd bin ich nun auch wieder nichtIch hatte nur im mom keine Ahnung, wie ich's machen sollte..
Wahrscheinlich zu kompliziert gedacht.Wenn ich 5+5 rechne kommt 10 raus, aber wenn ich 5+5+5 rechne auch(??)
->?
->Du addierst eben nicht 5 + 5 + 5 sondern nur 5+5...deshalb kam auch immer 10 raus...
Danke für dein Code-Beispiel!
Gern geschehen.
-
Das mit den Fragezeichen war, weil ich schon vieles probiert hab und es einfach nicht hinbekam. Sagen wir es so.. ich hab's mir gedacht.
Ist ja logisch, weil immer das selbe Ergebnis rauskam.Naja, die fortgeschrittenen C++ Programmierer haben wieder was zu lachen
Thx anyway