001
02.01.2008, 18:21 Uhr
xXx
Devil
|
01. Deine switch-case-Konstruktion bezieht sich auf die 1. Zahl anstelle der Gewählten Rechnart Das solltest du anpassen. 02.
Fehlen zwei Klammern
Aber die Stelle, so darfst du deinem Tutor gerne berichten, ist undefiniertes Verhalten und darf gerne gestrichen werden. 03. Hinter return 0; fehlt ein }. 04. Wofür schreibst du denn die "Unterprogramme", die man auch einfach Funktionen nennt, wenn du sie nicht nutzt? 05. "Ergebnist" was ist das? Und ein Leerzeichen dahinter ist auch nicht falsch (evtl. auch ein Doppelpunkt)
C++: |
#include <iostream> // #include <cstdio> std::fflush kommt raus, d.h. nicht genutzt // #include <cmath> nicht genutzt ...
using namespace std;
/* Prototypen der Funktionen*/ int addition(int a, int b); int subtraktion(int a, int b); int multiplikation(int a, int b); double division(int a, int b);
/*Die Hauptfunktion*/ int main () { /*Variable, die in main() verwendet werden*/ int erste, zweite, wahl; int resultat;
/*Eingabeaufforderungen*/ cout << "Waehlen Sie, was mit den zwei Zahlen geschehen soll,"<< endl; cout << "die Sie nachher eingeben:" << endl; cout << "1 addieren\n2 subtrahieren\n3 multiplizieren\n4 dividieren"; cout << endl << endl; cin >> wahl; cout << "\n\nErste Zahlt" << endl; cin >> erste; cout << "Zweite Zahlt" << endl; cin >> zweite;
/*Auswahl der Funktion */ switch (wahl) { case '1': resultat = (erste+zweite); break; case '2': resultat = (erste-zweite); break; case '3': resultat = (erste*zweite); break; case '4': resultat = (erste/zweite); break; }
/*Ausgabe*/ cout << "Ergebnis: " << resultat << endl << endl; // return 0; muss nicht, kann aber stehen bleiben. }
int addition(int a, int b) { return (a + b); }
int subtraktion(int a,int b) { return (a - b); }
int multiplikation(int a,int b) { return (a * b); }
double division(int a,int b) { return (a / b); }
|
statt std::fflush solltest du eher sowas nutzen:
C++: |
std::istream& flush_stream(std::istream& in) { return in.clear(), in.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); }
|
Dabei geht man halt hin und setzt das fail&bad-bit des Streams zurück. Dann wird noch alles was im Buffer steht rausgeworfen bis zum nächsten Newline-Zeichen.
C++: |
/*Ausgabe*/ cout << "Ergebnis: " << resultat << endl << endl; flush_stream(std::cin).get(); // return 0; muss nicht, kann aber stehen bleiben. }
|
wäre dann der letzte Teil deines Programms anstelle von std::fflush |