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

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;
}