Frage von Ucanaskme, 45

Taschenrechner in C, was ist an folgendem Code falsch? Wenn ich runde berechnet er die erste zahl nicht (gar nicht) mit.

Nur die 2. Zahl wird am Ende ausgegeben, z.b: 1.)6; 2.) 9; rechenzeichen='-'; er gibt '-9' aus. Wo ist der Fehler und wie kann ich ihn einfach beheben? Danke

Codetag<#include #include

int main(void) {

float zahl1, zahl2, a, ok; char op, dummy, wahl1;

printf("Bitte geben Sie die erste Zahl ein:\n");

ok=scanf("%f%c", &a, &dummy); if (ok==2){ printf("Die Eingabe war korrekt.\n"); } else{ printf("\nERROR\n\nEingabe von Buchstabe oder Zeichen.\n\n"); system("PAUSE");return -9;

} printf("Bitte geben Sie die zweite Zahl ein:\n"); scanf("%f", &zahl2);

printf("Bitte geben Sie ein, wie gerechnet werden soll<+,-,*,/>: \n"); scanf("%s", &op);

if (op == '+') { printf("Die Summe ist: %f \n", (zahl1 + zahl2)); } else if (op == '-') { printf("Das Ergebnis ist: %f\n", (zahl1 - zahl2)); } else if (op == '*') { printf("Das Ergebnis ist: %f\n", (zahl1 * zahl2)); } else if (op == '/') { printf("Das Ergebnis ist: %f\n", (zahl1 / zahl2)); if(zahl2==0) { printf("ERROR\n"); printf("Man darf nicht durch '0' teilen.\n");return -2; }

}

system("PAUSE"); return 0;

}>

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von mememememe, 9

Falls das Problem noch existiert/interessiert: zahl1 scheint nie belegt zu werden ;). Du hast vermutlich bloß vergessen, es irgendwo in ein scanf zu packen ^^. Die Ausgabe von zahl1-zahl2 kann dann nicht so funktionieren, wie geplant.

Antwort
von PWolff, 15

Mir ist nur ein fehlendes Semikolon in

} printf("Bitte geben Sie die zweite Zahl ein:\n");

aufgefallen.

Keine passende Antwort gefunden?

Fragen Sie die Community