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.


Log in to reply