NeKo LeXuS
Komplett-PC-Käufer(in)
Hallo Leute,
für die meisten von euch ist diese Frage wahrscheinlich ein Leichtes, ich finde allerdings nicht den Fehler: ich habe einen Taschenrechner auf C-Basis programmiert.
Nach dem die Operation ausgewählt wurde, zwei Zahlen eingegeben wurden und das Ergebnis ausgespuckt wurde, hat der Nutzer die Möglichkeit, das Programm mit "j" neu zu starten. Dabei ruft er wieder die Prozedur start(); auf, bricht allerdings (nach der ersten Eingabe innerhalb der start();-Prozedur) ab. Wieso?
Anbei mein Quellcode:
Danke schon mal für die Hilfe!
für die meisten von euch ist diese Frage wahrscheinlich ein Leichtes, ich finde allerdings nicht den Fehler: ich habe einen Taschenrechner auf C-Basis programmiert.
Nach dem die Operation ausgewählt wurde, zwei Zahlen eingegeben wurden und das Ergebnis ausgespuckt wurde, hat der Nutzer die Möglichkeit, das Programm mit "j" neu zu starten. Dabei ruft er wieder die Prozedur start(); auf, bricht allerdings (nach der ersten Eingabe innerhalb der start();-Prozedur) ab. Wieso?
Anbei mein Quellcode:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
/* TASCHENRECHNER V. 0.1
Leider bricht das Programm ab, sobald sich der User entscheidet, durch die Prozedur retry(); das Programm neu zu starten.
Das Programm beginnt dann wieder bei start(); , bricht danach allerdings bei der Eingabe direkt ab. Woran kann das liegen?*/
int a = 0;
int b = 0;
char operation;
void start() {
printf("TASCHENRECHNER VON M. A.\n\n");
printf("Auszufuehrende Operation (+, -, /, *): ");
scanf_s("%c", &operation);
printf("Bitte die erste Zahl eingeben: ");
scanf_s("%d", &a);
printf("Bitte die zweite Zahl eingeben: ");
scanf_s("%d", &b);
}
void rechnen() { // hier wäre eine switch-Verzweigung eleganter, ich werde das später implementieren.
if (operation == '+') {
int summe = a + b;
printf("Ergebnis: %d\n\n", summe);
}
else if (operation == '-') {
int subtraktion = a - b;
printf("Ergebnis: %d\n\n", subtraktion);
}
else if (operation == '*') {
int multiplikation = a * b;
printf("Ergebnis: %d\n\n", multiplikation);
}
else if (operation == '/') {
int division = a / b;
printf("Ergebnis: %d\n\n", division);
}
getchar();
}
void retry() {
printf("Nomma? j/n\n");
char i;
scanf_s("%c", &i);
if (i == 'j') {
start();
}
else if (i == 'n') {
printf("Tschau.\n");
}
}
void main() {
start();
rechnen();
retry();
}
Danke schon mal für die Hilfe!
Zuletzt bearbeitet: