I need help with switch case
I have the problem that after the first run of the addieren() function the default case is triggered and the result of the calculation disappears.
Sorry for my bad english.
Code:
#include <stdio.h>
#include <stdlib.h>
void wurzel();
void addieren();
void subtrahieren();
void dividieren();
void multiplizieren();
void menue();
void rechenOperator(char rOperator);
int main()
{
menue();
char eingabeOperator=NULL;
printf("\nSchreibe den gewuenschten Rechen-Operator: ");
eingabeOperator=getchar();
rechenOperator(eingabeOperator);
}
void menue(){
printf("\n----- Taschenrechner-Menue -----\n");
printf("Schreibe 'S' oder 's' um den Rechner zu verlassen \n");
printf("Schreibe + Symbol fuer Addition \n");
printf("Schreibe - Symbol fuer Subtraktion \n");
printf("Schreibe * Symbol fuer Multiplikation \n");
printf("Schreibe / Symbol fuer Division \n");
printf("Schreibe 'W' oder 'w' fuer Wurzel \n");
}
void rechenOperator(char rOperator) {
switch(rOperator) {
case'+':addieren();
break;
case'-':subtrahieren();
break;
case'*':multiplizieren();
break;
case'/':dividieren();
break;
case's':exit(0); break;
case'S':exit(0); break;
case'w':wurzel();
break;
case'W':wurzel();
break;
default:system("cls");
printf("Du hast keine korrekte Auswahl eingegeben.\n");
main();
break;
}
}
void addieren(){
float Summand1, Summand2, ergebnis;
printf("\nErster Summand: ");
scanf("%f", &Summand1);
printf("\nZweiter Summand: ");
scanf("%f", &Summand2);
ergebnis = Summand1 + Summand2;
system("cls");
printf("\n%f + %f = %f\n", Summand1, Summand2, ergebnis);
main();
}