Taschenrechner Problem
-
Nunja, ich habe einen Taschenrechner erstellt, der auch funktioniert, nur gibt es da ein Problem. Ich habe gehört, man kann mehrere Funktionen auswählen, indem man schreibt: z.B:
cout << "1. Addition" << endl;
cout << "2. Subtraktion" << endl;
cout << "3. Multiplikation" << endl;
cout << "4. Division" << endl;So, wenn ich aber nun auf die .exe Datei klicke und den Taschenrechner starte
und eine Zahl, wie z.B. 3 eingebe, kommt aber trotzdem die Addition und danach folgen die anderen Rechenoptionen. Mit `goto´ hab ich schon was probiert, ging nicht... Ich hab hier mal das Script kopiert. Ich hoffe, ihr könnt mir helfen.
Thx im Voraus.\1:
______________________________#include<iostream> #include<cstdlib> using namespace std; int main() { int rechenoption; int zahl1; int zahl2; cout<<"Taschenrechner"<<endl; cout<<"Bitte waehlen sie die gewuenschte Rechenoption."<<endl; cout << "1. Addition" << endl; cout << "2. Subtraktion" << endl; cout << "3. Multiplikation" << endl; //hier liegt das Problem!!!! cout << "4. Division" << endl; cin>>rechenoption; if(rechenoption == 1); { cout<<"Wir fuehren eine Addition durch."<<endl; cout<<"Bitte geben sie 2 Zahlen ein, die addiert werden sollen."<<endl; cout<<"Erste Zahl: "; cin>>zahl1; cout<<"Zweite Zahl: "; cin>>zahl2; cout<<zahl1<<" + "<<zahl2<<" = "<<(zahl1+zahl2)<<endl; } if(rechenoption == 2); { cout<<"Wir fuehren eine Subtraktion durch."<<endl; cout<<"Bitte geben sie 2 Zahlen ein, die subtrahiert werden sollen."<<endl; cout<<"Erste Zahl: "; cin>>zahl1; cout<<"Zweite Zahl: "; cin>>zahl2; cout<<zahl1<<" - "<<zahl2<<" = "<<(zahl1-zahl2)<<endl; } if(rechenoption == 3); { cout<<"Wir fuehren eine Multiplikation durch."<<endl; cout<<"Bitte geben sie 2 Zahlen ein, die multipliziert werden sollen."<<endl; cout<<"Erste Zahl: "; cin>>zahl1; cout<<"Zweite Zahl: "; cin>>zahl2; cout<<zahl1<<" * "<<zahl2<<" = "<<(zahl1*zahl2)<<endl; } if(rechenoption == 4); { cout<<"Wir fuehren eine Division durch."<<endl; cout<<"Bitte geben sie 2 Zahlen ein, die dividiert werden sollen."<<endl; cout<<"Erste Zahl: "; cin>>zahl1; cout<<"Zweite Zahl: "; cin>>zahl2; cout<<zahl1<<" durch "<<zahl2<<" = "<<(zahl1/zahl2)<<endl; } system("PAUSE"); return 0; }
-
Die Semikolons im if Stmt hast Du falsch gesetzt. Die gehören da nicht hin.
Mach aus:
if(rechenoption == 1);
{
...
Diese hier
if(rechenoption == 1) {
...
-
Keine Semikolons nach den if-Abfragen! Das bedeutet nämlich, dass gar nichts gemacht wird, wenn die Bedingung erfüllt ist.
-
Hinzu kommt, dass die Blöcke ({ ... }) "beliebig" im Quelltext stehen dürfen (und einen eigenen Scope bilden):
#include <iostream> using namespace std; int main() { int wert = 1; { int wert = 3; cout << "wert in {} ist " << wert << endl; } cout << "wert ist " << wert << endl; }
Das hat in deinem Programm zur Folge, dass nach der Bedingung (if) nichts ausgeführt wird und im "unbedingten"/normalen Programmverlauf die Addition. Das Programm durchläuft so alle Rechenoperationen.
Grüße ... Heiko
-
Die Semikolons habe ich gelöscht, aber noch 2 Sachen. Erstens verstehe ich den Einwand von bwbg nicht und zweitens klappts immer noch nicht!
Was tun?????
-
HABS KAPIERT !!!!!!!!!!!!!!
VIELEN VIELEN DANK LEUTE! Oder aud C++:
cout<<"Danke, Leute!"<<endl;
xD Bye
Gruß Flo
-
- bitte das nächstemal die cpp-Tags benutzen, hab sie jetzt für dich eingefügt.
- C++ ist eine Programmiersprache, keine Scriptsprache
-
pumuckl schrieb:
C++ ist eine Programmiersprache, keine Scriptsprache
Das schmerzt schon, wenn C++ als Skriptsprache bezeichnet wird