Które wyrażenie logiczne w języku C sprawdza, czy zmienna zm1 należy do przedziału (6, 203] (większa od 6 i mniejsza lub równa 203)?
Źle.
|| oraz != nie opisują tego przedziału.Dobrze. Oba warunki muszą zachodzić jednocześnie (
&&).Źle.
!= 203 wyklucza tylko 203, nie ogranicza od góry.Źle. Operator
|| (LUB) jest prawdziwy niemal zawsze, nie zawęża do przedziału.Przedział (6, 203] oznacza wartości większe od 6 ORAZ mniejsze lub równe 203, więc oba warunki muszą zachodzić naraz - łączy je
&&: (zm1 > 6) && (zm1 <= 203). Dlatego to wyrażenie jest poprawne.Pozostałe zapisy źle opisują przedział.
|| (lub) byłoby prawdziwe niemal zawsze, bo wystarczyłby jeden warunek. != 203 („różne od 203”) to nie to samo co „mniejsze lub równe 203” - dopuszczałoby liczby powyżej zakresu. Przedział (6, 203] opisuje (zm1 > 6) && (zm1 <= 203).