int num;
scanf("%d", &num);
if (num % 4 == 0 && num%100 != 0 || num % 400 == 0)
printf("%d", 1);
else
printf("%d", 0);
在這個邏輯中,我發現我不需要()在AND條件前面的OR條件中做。
if (*(num % 4 == 0 && num0 != 0)* || num % 400 == 0)
只有在if (num % 4 == 0 && num0 != 0 || num % 400 == 0)沒有條件的情況下才需要它。因此,它似乎喜歡的作品
,但它似乎它可以作為作業條件。()OR(A && B || C)((A && B) || C)(A && (B || C))
為什么()在這種情況下不需要?A和B條件從頭開始自動分組?
uj5u.com熱心網友回復:
C 中的所有運算子(實際上是所有語言)都有所謂的運算子優先級,它決定了哪些運算元首先分組。
邏輯 AND 運算子&&的優先級高于邏輯 OR 運算子||,這意味著:
A && B || C
與此相同:
(A && B) || C
所以如果你想B || C被分組在一起,你需要顯式添加括號,即:
A && (B || C)
uj5u.com熱心網友回復:
括號決定了操作的順序,如果你移動括號,你可能會改變輸出的內容。就像 (A B) / C 不同于 A (B / C) 但仍然是一個有效的方程。
請參閱C 中的操作順序
uj5u.com熱心網友回復:
邏輯 AND 的優先級高于 OR:https : //en.cppreference.com/w/c/language/operator_precedence
dg
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/408128.html
標籤:
上一篇:根據多個條件填充單元格資料框
