Forum: Compiler & IDEs 1<i<5 wie in c umsetzen


von Marco (Gast)


Lesenswert?

wie schreib ich das in c? eigentlich:


if((i>1) || (i<5))...


stimmt das so?

von Marius W. (mw1987)


Lesenswert?

Stimmt fast.

if((i>1) && (i<5))

MfG
Marius

von Marco (Gast)


Lesenswert?

sorry vor  1<i<5 es soll true werden wenn die Bedingung nicht stimmt 
also i auserhalb des Bereiches liegt.

von Karl H. (kbuchegg)


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.

von Karl H. (kbuchegg)


Lesenswert?

Marco wrote:
> sorry vor  1<i<5 es soll true werden wenn die Bedingung nicht stimmt
> also i auserhalb des Bereiches liegt.

Welche Eigenschaften müssen daher diese Zahlen haben?

i muss daher kleiner als 1 sein   oder
i muss größer als 5 sein

von Marco (Gast)


Lesenswert?

also ich habe eine zahl i wenn die auserhalb eines bereiches liegt soll 
es die variable x auf 1 setzen. ich dachte mir:


if((i>1) || (i<5)) {
x=1;
}

von Karl H. (kbuchegg)


Lesenswert?

Marco wrote:
> also ich habe eine zahl i wenn die auserhalb eines bereiches liegt soll
> es die variable x auf 1 setzen. ich dachte mir:
>
>
> if((i>1) || (i<5)) {

Nochmal: Probiere es mit Zahlen mal aus.
Nimm an, dass i den Wert 2 habe. Was ergibt dann dein Ausdruck?

von Gast (Gast)


Lesenswert?

>also ich habe eine zahl i wenn die auserhalb eines bereiches liegt soll
>es die variable x auf 1 setzen. ich dachte mir:

>if((i>1) || (i<5)) {
>x=1;
>}

Dann kannst Du gleich
x=1
schreiben

von Karl H. (kbuchegg)


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.

von winne (Gast)


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))

von Marco (Gast)


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...

von Marco (Gast)


Lesenswert?

Beispiele:

4<5-->1 4>10-->0 = 1 Or 0 = 1-->x=1
11<5-->0 11>10--> = 0 OR 1 = 1-->x=1
7<5-->0 7>10 = 0 OR 0 = 0

von Karl H. (kbuchegg)


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;

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.