Hallo, der GCC kompiliert zwar, aber der Vergleich funktioniert leider nicht:
1 | if (0 < Messwert > 210) |
Wie kann ich auf geschicktere Weise einen Zahlenbereich wählen? mfg unitled
|
Forum: Compiler & IDEs Zahlenbereich wählenHallo, der GCC kompiliert zwar, aber der Vergleich funktioniert leider nicht:
Wie kann ich auf geschicktere Weise einen Zahlenbereich wählen? mfg unitled vielleicht eine idee, aber ich weiß immerhin warum der vergleich nicht funktioniert: als erste vergleicht der compiler links und mitte und dann mitte und rechts und somit ist der Vergleich immer falsch. Wieso achtet heutzutage eigentlich niemand mehr auf die Compiler-Warnungen? > test.c:47: warning: comparisons like X<=Y<=Z do not have their mathematical > meaning Unitled schrieb: > als erste vergleicht der compiler links und mitte und dann mitte und > rechts und somit ist der Vergleich immer falsch. genau das passiert nicht. In C ist fast alles ein Ausdruck. Auch das Ergebnis eines Vergleichs oder einer Zuweisung. In if (0 < Messwert > 210) wird 0 und Messwert miteinander verlgichen. Das liefert ein Ergebnis, nämlich 0 oder 1, je nachdem ob der Vergleich zutrifft oder nicht. Dieses Ergebnis geht dann in den zweiten Vergleich: > 210 Da weder 0 noch 1 jemals größer als 210 sein wird, ist damit der komplette Ausdruck immer falsch. Wenn man deinen Vergleich etwas ausführlicher auseinandernimmt, dann hast du da oben geschrieben: Vergleich1 = ( 0 < Messwert ); Vergleich2 = ( Vergleich1 > 210 ); if( Vergleich2 ) Was du wissen willst: Ist es wahr, dass Messwert größer 0 ist UND Messwert kleiner als 210 ist if( Messwert > 0 && Messwert < 210 ) @kbuchegg Danke dir, ich sollte mir mal ne Liste mit logischen Verknüpfungen machen. mfg Unitled >ich sollte mir mal ne Liste mit logischen Verknüpfungen >machen. >C-Buch besorgen >C-Buch lesen >C-Buch verstehen Oliver Unitled schrieb: > @kbuchegg > Danke dir, ich sollte mir mal ne Liste mit logischen Verknüpfungen > machen. Wozu? Es gibt nur 2: UND und ODER Peter S. schrieb: >>Wozu? >>Es gibt nur 2: UND und ODER > > Falsch, es gibt auch noch XOR! Aber nicht als dezidierte logische Verknüfung. doch: != (falls links und rechts logische Ausdrücke stehen, die jeweils nur 0 oder 1 liefern) Was Karl heinz Buchegger wohl meinte ist, dass es zwei elemtare logische Verknuepfungen gibt, naemlich : UND, ODER Mit Hilfe dieser und der Negation kann man nun alle anderen logischen Verknuepfungen darstellen. Dass es fuer einige gebraeuchliche (nichtelementare) auch noch extra Abkuerzungen (z. Bsp. XOR) aendert dabei nichts an der grundsaetzlichen Aussage. ;) Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
|
|