Abfrage von Werten ohne if-else
-
Eine Frage:
scanf("%f",x); // Wie kann ich einen Wert abfragen und als Ergebnis 0 oder 1 // bzw. wahr oder falsch rauskriegen. // Bsp.: ich will wissen ob x==2 ist. Ergebnis sollte dann 0 oder 1 sein. // Mit if-else gehts ja, aber gehts auch ohne??
Wäre schön wenns eine Lösung gäbe.
Danke im Vorraus
-
x == 2
ist ein Ausdruck, der 0 ergibt, wenn die Bedingung falsch ist, und der 1 ergibt, wenn sie wahr ist. Ich hoffe du meintest das. BTW muss es &x im scanf-Aufruf heißen, wenn x eine float-Variable ist.
-
ok, aber wie kann ich die 1 bzw. 0 abrufen??
-
Du bist mit dem Begriff Ausdruck nicht vertraut? Vielleicht hilft dieses Beispiel:
float x; scanf("%f", &x); printf("%d", x == 2);
-
Jetzt hab ichs gerafft!!
-
Hallo!
// Mit if-else gehts ja, aber gehts auch ohne??
Sehr elegant geht es mit dem Bedingungsoperator:
#define TRUE 0 #define FALSE 1 double x; int yes_no; scanf("%f",&x); yes_no = ((x == 2) ? TRUE : FALSE); /* Wenn der Ausdruck x == 2 wahr ist, wird TRUE zugewiesen, andernfalls FALSE */
Gruß
Michael
-
bloodshower schrieb:
yes_no = ((x == 2) ? TRUE : FALSE); /* Wenn der Ausdruck x == 2 wahr ist, wird TRUE zugewiesen, andernfalls FALSE */
Wo ist das elegant? Ist doch Blödsinn. Bashars Variante macht das selbe.