отчетность как a>=c
возвращает истину (1) или ложь (0).
Так что в вашем случае a=(a>=c);
присвоит значение 1, если a
a >= c
, в противном случае, он будет назначать от 0 до a
.
Это также может быть прочитана как
if(a >= c)
a = 1;
else
a = 0;
Следующая является b=(c<d)||(b>d);
. Поскольку у нас есть ||
, если какое-либо из двух условий возвращает true, тогда b назначается 1, в противном случае ему присваивается 0. То есть, если (c < d)
или (b > d)
, b
будет присвоено значение 1, и если оба условия возвращают false, то b
присваивается 0.
Теперь это похоже, если заявление
if((c < d) || (b > d))
b = 1;
else
b = 0;
И a=(a!=d)&&(b!=c)
, оба условия должны вернуться верно для a
, чтобы получить значение 1. То есть, как (a != d)
и (b != c)
должны возвращать верно для a
которому присваивается значение 1. Если любое из этих двух условий не выполняется, то a
присваивается значение 0.
Это эквивалентно
if ((a != d) && (b != c))
a = 1;
else
a = 0;
Надеюсь, вы понимаете, это сейчас. :)
Это действительные выражения C. Не аномально. Вы запрограммировали на C раньше? – lurker