Es fehlt der break nach jedem case. Ohne break Anweisung wird das Programm nach einem Treffer in der switch Anweisung weiter die nachfolgenden Fälle ausführen, bis es auf ein break stößt oder die switch-Anweisung endet.
#include <stdio.h>
int main() {
char operation;
int n1, n2;
printf("Enter an operator (+, -, *, /): ");
scanf(" %c", &operation); // Beachten Sie das Leerzeichen vor %c, um Zeilenumbrüche zu überspringen
printf("Enter two operands: ");
scanf("%d %d", &n1, &n2);
switch(operation)
{
case '+':
printf("%d + %d = %d", n1, n2, n1 + n2);
break; // Hinzugefügt, um den Fall zu beenden
case '-':
printf("%d - %d = %d", n1, n2, n1 - n2);
break; // Hinzugefügt, um den Fall zu beenden
case '*':
printf("%d * %d = %d", n1, n2, n1 * n2);
break; // Hinzugefügt, um den Fall zu beenden
case '/':
printf("%d / %d = %d", n1, n2, n1 / n2);
break; // Hinzugefügt, um den Fall zu beenden
default:
printf("Error! operator is not correct");
}
return 0;
}