if und else in C programmieren?
Hallo.
Meine Frage lautet nicht ob das Programm sinngemäß stimmt, ich bin noch nicht damit durch, sondern lediglich wieso mit "(eingabe h)" hinter dem else ein Fehler angezeigt wird, und wieso ohne "(eingabe h)" kein Fehler angezeigt wird, und das Programm läuft.
Der Fehlercode weist nämlich im ersteren Fall darauf hin, dass ein Semikolon an der Stelle fehlen würde?
Vielen Dank
2 Antworten
Erstens muss die Abfrage, ob eine Variable einen Wert hat, mit "==" erfolgen. Zweitens (und das ist der Grund für den Fehler) muss vor der Bedingung im else Zweig wieder ein if stehen.
if (...)
else if (...)
else
Meinst du so? So gibt er mir leider nichts raus.
Naja, dann ist die Eingabe eben weder gleich k noch gleich h.
Die Funktion durchschnittswert ist übrigens auch falsch. Die Schleife kannst Du Dir schenken oder sie muss einen anderen Inhalt haben. Du errechnest jetzt zig mal immer denselben Wert, nämlich (obergrenze - untergrenze) / 2. Der ändert sich ja nicht in Abhängigkeit von i.
Was weiß ich? Ich weiß ja nicht, was die Funktion errechnen soll...
Für den Mittelwert zwischen Ober- und Untegrenze:
float Durchschnitt_fein(int unter, int ober){return ((float)(ober-unter)/2)+unter;}
int Durchschnitt_grob(int unter, int ober){return (ober-unter)/2 +unter;}
Das Unterprogramm "durchschnitt" ist auch seltsam. Den Durchschnitt berechnet man mit:
durchschnittswert = (obergrenze - untergrenze) / 2;
Die Schleife ist überflüssig.
if (eingabe == k)
printf("SPIELENDE!\n");
else if (eingabe == h)
printf("Lautet Ihre Zahl : %d\n", mittel(unteregrenze, oberegrenze);