Taschenrechner in C: Könnt ihr mir bei der Überprüfung des Operators helfen?

Hallo Community,

ich bräuchte Hilfe bei meinem C-Code. Ich komme nicht weiter bei der Überprüfung vom Taschenrechner. Ich möchte, dass der Operator überprüft werden soll. Sprich bei allen anderen Buchstaben außer A, S, M, D soll der Benutzer eine neue Angabe machen.

Hier mein Code:

int main()
{
  // Deklarierung der Variablen
  char auswahl;
  float zahl1, zahl2;
  float ergebnis;

  // Auswahl vom Rechenoperator
  printf("Wie moechtest du Rechnen?\n");
  printf("(a) Addieren\n");
  printf("(s) Subtrahieren\n");
  printf("(m) Multiplizieren\n");
  printf("(d) Dividieren\n");
  scanf("%c", &auswahl); // %c für char Variablen

  while () {
    if (auswahl != 'a' || 's' || 'm' ||'d') {
      printf("\nFalsche Eingabe. Waehle eine neue:");
    }
  }

  // Eingabe der Zahlen
  printf("Gib deine erste Zahle ein: ");
  scanf("%f", &zahl1);
  printf("Gib deine zweite Zahle ein: ");
  scanf("%f", &zahl2);

  // Auswahl-Auswertung vom Benutzer
  switch (auswahl) {
    case 'a':
      ergebnis = zahl1 + zahl2;
      break;
    case 's':
      ergebnis = zahl1 - zahl2;
      break;
    case 'm':
      ergebnis = zahl1 * zahl2;
      break;
    case 'd':
      ergebnis = zahl1 / zahl2;
      break;
    default:
      break;
  }

  // Ergebnisasugabe
  if (auswahl == 'a') {
    printf("\nErgebnis:\n%.1f + %.1f = %.1f", zahl1, zahl2, ergebnis);
  }

  if (auswahl == 's') {
    printf("Ergebnis:\n%.1f - %.1f = %.1f", zahl1, zahl2, ergebnis);
  }

  if (auswahl == 'm') {
    printf("Ergebnis:\n%.1f * %.1f = %.1f", zahl1, zahl2, ergebnis);
  }

  if (auswahl == 'd') {
    printf("Ergebnis:\n%.1f / %.1f = %.1f", zahl1, zahl2, ergebnis);
  }

  printf("\n\n");
  return 0;
}
Computer, programmieren, Informatik, Programmiersprache, C (Programmiersprache)
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.