1<i<5 wie in c umsetzen

#838252
Lesenswert?

Marco wrote:
> wie schreib ich das in c? eigentlich:
>
>
> if((i>1) || (i<5))...
>
>
> stimmt das so?


||   bedeutet: oder

Jetzt setz einfach mal ein paar Zahlen ein und werte den Ausdruck aus.

zb. für i gleich 0

i > 1      0 ist nicht größer als 1
i < 5      0 ist aber kleiner als 5

Das heist, der Ausdruck ( i > 1  oder  i < 5 ) ergibt wahr, weil
ja oder wiederrum heist, entweder das eine oder das andere muss wahr
sein (oder sogar beides), damit der komplette Ausdruck wahr ist.

Wenn du dir das genau übelegst, dann ist der Ausdruck
i > 1 || i < 5   eigentlich für alle Zahlen wahr, denn irgendeiner
der beiden Teilausdrücke ist immer wahr: Ziemlich viele Zahlen sind
größer als 1 und diejenigen die nicht größer als 1 sind müssen
sicherlich kleiner oder zumindest kleiner als 1 sein. Wenn sie aber
kleiner als 1 sind, dann sind sie sicherlich auch kleiner als 5.
-> Daher: Für jede Zahl gilt: Entweder sie ist größer als 1 oder
aber sie ist kleiner als 5. Manche Zahlen (nämlich 2, 3 und 4) sind
sogar beides: größer als 1 und kleiner als 5.
#838279
Lesenswert?

Das Problem ist:
Natürlich können dir hier 20 Leute die richtige Lösung schreiben.
Aber du lernst mehr, wesentlich mehr, wenn du das selbst ausknobelst.
Jeder, aber wirklich jeder, muss mindestens einmal in die Kombinationen
aus Vergleichen und UND und ODER reinfallen, um das in Zukunft richtig
zu machen.
Es ist wirklich nicht schwer aber man muss es mindestens einmal selbst
gemacht haben.
Gast #838282
Lesenswert?

>>  "1<i<5 "

besagt aber i liege zwischen 1 und 5  also für integer 2;3;4

>>es soll true werden wenn die Bedingung nicht stimmt
>> also i auserhalb des Bereiches liegt.

wäre korrekt so zu formulieren  (1>i) or (5<i)
oder                            not((i<=1)and(I<=5))


daraus ergibt sich in C syntax (1>i)||(5<i)

oder  |((1<=i)&&(5>=i))
Gast #838288
Lesenswert?

also so richtig blick ich da nicht durch ich möchte das für alle i nicht 
gleich 5,6,7,8,9,10 gilt x=1.

Es müsste doch gehen setze x auf 1, wenn i<5 oder i>10. Das hatt cih 
doch schon im anfangsost. das müsste also doch richtig sein...
#838403
Lesenswert?

Marco wrote:
> also so richtig blick ich da nicht durch ich möchte das für alle i nicht
> gleich 5,6,7,8,9,10 gilt x=1.
>
> Es müsste doch gehen setze x auf 1, wenn i<5 oder i>10. Das hatt cih
> doch schon im anfangsost.

Nein das hattest du nicht. Lies nochmal nach. Von 10 war dort überhaupt
keine Rede sondern von 1

> das müsste also doch richtig sein...

Ist es auch
1
  if( i < 5 || i > 10 )
2
    x = 1;
3
  else
4
    x = 0;

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren