Problem mit else if
-
Hab gerade das hier geschrieben:
#include <stdio.h>
main() {
float dampf,normal;
printf("\nBitte geben Sie die Temperatur in Grad Celsius ein:");
scanf("%f",&dampf);
if (dampf>=100)
printf("\nBei dieser Temperatur verdampft Wasser");
scanf("%f",&normal);
else if (normal>0 && normal<100)
printf("\nBei dieser Temperatur bleibt das Wasser fluessig");
else
printf("\nBei dieser Temperatur gefriert das Wasser");
}und beim compilen sagt Visual C++ das hier:
error C2181: illegal else without matching if
Error executing cl.exe.ich find irgendwie keinen Fehler. Kann mir wer helfen?
-
Ich hab zwar nicht verstanden, was du mit dem obigen Code bewirken willst, aber ich denke ich weiß was das Ergebnis sein soll.
Probier mal das aus:int main() { float wasser; printf("\nBitte geben Sie die Temperatur in Grad Celsius ein:"); scanf("%f",&wasser); if (wasser>0 && wasser<100) printf("\nBei dieser Temperatur bleibt das Wasser fluessig"); else { if (wasser>=100) printf("\nBei dieser Temperatur verdampft Wasser"); else printf("\nBei dieser Temperatur gefriert das Wasser"); } }Bei deinem code hat das 'else' von 'else if' kein zugehöriges 'if' denke ich.

-
Hallo,
Dein Fehler ist ganz einfach. Wenn du if benutzt wird nur die nächste Zeile als if-Zweig gewertet es sei denn du klammerst den Bereich der in den if zweig hinein soll. Dein Code müßte also korrekt lauten:main() { float dampf,normal; printf("\nBitte geben Sie die Temperatur in Grad Celsius ein:"); scanf("%f",&dampf); if (dampf>=100) { // Klamerung des if-Zweiges printf("\nBei dieser Temperatur verdampft Wasser"); ... weiterer Code im if-Zweig } // Ende if else { // Begin Else-Zweig if (dampf>0 && dampf<100) { /Nächeser if-Zweig printf("\nBei dieser Temperatur bleibt das Wasser fluessig"); ... weiterer Code zum if-Zweig }// Ende if else {// Nächstes else printf("\nBei dieser Temperatur gefriert das Wasser"); }//ende else innere Schachtel }// ende else }// ende main
-
ja so in der Art wars doch gemeint

Aber ich evrsteh immer noch nicht ganz warum zwei Variablen und zwei Eingaben ?

[ Dieser Beitrag wurde am 31.05.2003 um 17:51 Uhr von CrazyOwl editiert. ]
-
wie meinst du 2 variablen und 2 eingaben?
bei der version von christilon kommt noch ne warnung:
"warning C4101: 'normal' : unreferenced local variable"
die von owl funzt einwandfrei

vielen dank für die lösungen.
-
Er meint, dass du zwei Variablen verwendest, um Daten einzulesen, obwohl du auch alles mit einer Variablen machen könntest, wie er es in seinem Codebeispiel gemacht hat.
Die Warnung resultiert daraus, dass die Variable normal in dem Code nicht verwendet wird und ihr auch kein Wert zu gewiesen wird.
-
achso, stimmt, geht wirklich einfacher

ok, funzt jetzt alles, dann mal auf zum nächsten kapitel.danke für die hilfe.
-
Original erstellt von Bill Geiz:
**Er meint, dass du zwei Variablen verwendest, um Daten einzulesen, obwohl du auch alles mit einer Variablen machen könntest, wie er es in seinem Codebeispiel gemacht hat.
**Ja, genau so wars gemeint
