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;
}
2 Antworten
int main() {
// Deklarierung der Variablen
char auswahl;
float zahl1, zahl2, ergebnis;
Int ok = 1;
// Auswahl vom Rechenoperator
printf("Wie moechtest du Rechnen?\n");
printf("(+) Addieren\n");
printf("(-) Subtrahieren\n");
printf("(*) Multiplizieren\n");
printf("(/) Dividieren\n");
while(ok == 1) {
// Eingabe der Zahlen
printf("Gib deine erste Zahle ein: ");
scanf("%f", &zahl1);
printf("Gib deinen Operator ein: ");
scanf("%c", &auswahl);
printf("Gib deine zweite Zahle ein: ");
scanf("%f", &zahl2);
// Auswahl-Auswertung vom Operator
switch (auswahl) {
case '+':
ergebnis = zahl1 + zahl2;
ok = 0;
break;
case '-':
ergebnis = zahl1 - zahl2;
ok = 0;
break;
case '*':
ergebnis = zahl1 * zahl2;
ok = 0;
break;
case '/':
ergebnis = zahl1 / zahl2;
ok = 0;
break;
default:
break;
}
}
printf("Ergebnis:\n%.1f %c %.1f = %.1f", zahl1,auswahl,zahl2,ergebnis);
Ich hoffe das passt ungefähr mach das gerade über meinen Handy.
Woher ich das weiß:Studium / Ausbildung – Programmierer mit leib und Seele
Ich habe deinen Code entsprechend angepasst und nur den Teil mit der Abfrage ersetzt, aber nicht kontrolliert, ob der Code lauffähig ist.
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");
do {
scanf("%c", &auswahl); // %c für char Variablen
if (auswahl != 'a' && auswahl != 's' && auswahl != 'm' && auswahl != 'd') {
printf("\nFalsche Eingabe. Waehle eine neue:");
} else {
break;
}
} while(1==1);
// 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;
}