/* ÜBUNG 7 AUFGABE 2 */ #include /* Kleine Hilfsfunktion */ void myexit(int code) { #ifdef _WIN32 /* Nur unter Windows: */ system("PAUSE"); /* Auf Tastendruck warten */ #endif /* Ende (Windows-Abfrage) */ exit(code); } /* Kopie aus aufgabe5.c, Übung6 */ #include /* Makros und Deklarationen für Standard Ein-/Ausgabe */ int main(int argc, char *argv[]) /* Hauptprogramm main, immer gleich */ { int zahl1; /* Ganzzahl-Variable */ int zahl2; /* Ganzzahl-Variable */ int gelesen; /* Ganzzahl-Variable */ char zeichen; /* Zeichen-Variable */ printf("Bitte geben Sie die erste Zahl ein: "); /* Eingabeaufforderung ausgeben */ gelesen = scanf("%d", &zahl1); /* Zahl lesen und in der Speicherstelle von "zahl1" speichern, */ /* Anzahl gelesener Werte in "gelesen" merken. */ if(gelesen != 1) /* Ist die Anzahl gelesener Variablen ungleich 1? */ { printf("Sie haben leider keine Zahl eingegeben!\n"); /* Meldung ausgeben */ myexit(1); /* Programm mit Fehlercode beenden */ } printf("Bitte geben Sie die zweite Zahl ein: "); /* Eingabeaufforderung ausgeben */ gelesen = scanf("%d", &zahl2); /* Zahl lesen und in der Speicherstelle von "zahl2" speichern, */ /* Anzahl gelesener Werte in "gelesen" merken. */ if(gelesen != 1) /* Ist die Anzahl gelesener Variablen ungleich 1? */ { printf("Sie haben leider keine Zahl eingegeben!\n"); /* Meldung ausgeben */ myexit(1); /* Programm mit Fehlercode beenden */ } printf("Bitte geben Sie ein Zeichen aus der Menge { + - * / } ein: "); /* Eingabeaufforderung ausgeben */ /* ACHTUNG: Wie Sie vielleicht gemerkt haben, befindet sich im * Tastaturpuffer noch das "Zeilenende"-Zeichen nach Eingabe der * letzten Zahl! Dies muss entweder mit einem weiteren scanf() * "überlesen" werden, oder mit dieser Variante des Format-String * mit Leerzeichen vor %c behandelt werden. */ gelesen = scanf(" %c", &zeichen); /* Zeichen lesen und in der Speicherstelle von "zeichen" speichern, */ /* Anzahl gelesener Werte in "gelesen" merken. */ if(gelesen != 1) /* Ist die Anzahl gelesener Variablen ungleich 1? */ { printf("Sie haben leider kein Zeichen eingegeben!\n"); /* Meldung ausgeben */ myexit(1); /* Programm mit Fehlercode beenden */ } printf("%d %c %d = ", zahl1, zeichen, zahl2); /* "Operand1 Operator Operand2" = ausgeben. */ /* ACHTUNG: DER FÜR DIE AUFGABE RELEVANTE TEIL BEGINNT HIER! */ switch(zeichen) { case '+': printf("%d\n", zahl1 + zahl2); break; case '-': printf("%d\n", zahl1 - zahl2); break; case '*': printf("%d\n", zahl1 * zahl2); break; case '/': if(zahl2 == 0) { printf("Durch 0 darf man nicht teilen!\n"); /* Fehlermeldung ausgeben */ myexit(1); /* Programm mit Fehlercode verlassen. */ } printf("%d\n", zahl1 / zahl2); break; default: printf("Ich kenne diese Berechnungsmethode nicht!\n"); /* Fehlermeldung ausgeben */ myexit(1); /* und Programm mit Fehlercode verlassen. */ } /* DER FÜR DIE AUFGABE RELEVANTE TEIl ENDET HIER! */ return 0; /* Programm ohne Fehlercode beenden */ }