C語言邏輯運算,c語言邏輯運算子 我不明白 和 到底是怎麼運算的

時間 2022-03-08 14:40:04

1樓:

if (條件表示式)

{語句1;

}語句2;

if是條件判斷的關鍵字,後面的小括號裡包含的是條件表示式。如果條件表示式為非0,執行大括號{}裡的「語句1」,如果條件表示式值為0,則不執行{}裡的「語句1」,而是調過「語句1」,直接執行「語句2」

你這個問題的條件表示式是 i!=k&&i!=j&&j!=k

這個表示式被兩個&&分為了三部分,&&叫「邏輯與」。

這個條件表示式會先判斷i!=k,如果i確實不等於k,則繼續判斷i!=j,如果i也不等於j,則繼續判斷j!

=k,如果j也不等於k,則整個條件表示式成立,會執行語句1,再執行語句2.

如果這三個小表示式有一個不成立,就標識整個條件表示式不成立,則只會執行語句2.

所以i!=k&&i!=j&&j!=k的意思就是變數i,j,k這三個變數不能相同,否則if條件不成立。

2樓:匿名使用者

去了解下運算子優先順序的問題,我幫你用括號把他們分開吧

if (i!=k&&i!=j&&j!=k)等於if ( (i!=k) && (i!=j) && (j!=k))

三個表示式都為真 則if後面的語句執行

3樓:匿名使用者

if (i!=k&&i!=j&&j!

=k)這個是與運算,如果i != k則為真,否則為假;如果i != j則為真,否則為假;如果j!

= k則為真,否則為假;這三個中有一個為假則結果為假,全部為真時結果才為真

4樓:匿名使用者

if ( (i!=k) && (i!=j) && (j!=k))

如果 i不等於k 並且 i不等於j 並且 j不等於k

5樓:匿名使用者

如果 i不等於k 並且 i不等於j,並且 j不等於k

3個條件都滿足,就為真,其他都是假

6樓:彭聽然

!=是不等於的意思,&&是並且的意思,括號內的意思是:i不等於k,並且i不等於j,並且j不等於k,即3個數要兩兩不相等。

7樓:涐媞壞亽

如果i/j/k三個數都不相等條件成立

8樓:匿名使用者

如果i,j,k三者互不相等,繼續執行

c語言邏輯運算子 我不明白&&和||到底是怎麼運算的

9樓:匿名使用者

1 形式:

&&的形式為a&&b。

||的形式為a||b。

2 計算規則:

&&只有當a和b的值均非0時,結果為1,否則結果為0。

||只有當a和b的值均為0時,結果為0,否則結果為1。

3 優先順序:

&&的優先順序比||高,所以在寫在一起時,先計算&& 再計算||。

相同符號時,自左向右計算。

4 短路原則:

對於&&,如果左運算元a為0,那麼結果必然為0, 右運算元b將不參與計算。

對於||,如果左運算元a非0,那麼結果必然為1, 右運算元b將不參與計算。

10樓:匿名使用者

邏輯運算,方式子成立是即為真時整個式子值就為1反之為0,而對於值來說只要不是0就為真,如i&&j&&k=1,i,j=3都為真,所以整個式子為真等於1。另外要注意的是當&&左邊為假時不進行右邊計算,如(i=0)&&(j=3);l為0假右邊j=3不進行運算,所以j還是等於2,手機寫的真不方便。

11樓:**

i&&j&&k,先判斷i&&j,因為i和j都大於0,所以這個命題是真的,所以i&&j這個表示式等於1,再判斷後面的1&&k(ps:如果i&&j這個表示式等於0,後面的就不用判斷了,整個表示式就是0了)

。因為k大於0,所以1&&k就等於1,整個表示式就等於1了。

12樓:匿名使用者

邏輯正即為1,否則就為0,所以i&&j&&k=1

至於後面的就是因為&&這個運算子了,如果它的前一個為0的話那後面的就會直接忽略

不過你的結果貌似有點問題。。。。

c語言中邏輯運算子的規則是什麼

13樓:匿名使用者

1、邏輯運算子運算規則:

|| 或:比

如兩個條件中,只要有一個成立,則結果就成立;

&&與:比如兩個條件中,兩個同時成立,則結果成立,否則不成立;

!非,就是取反之意,如果是真,結果是假,如果是假,結果是真。

2、邏輯運算子是根據表示式的值來返回真值或是假值。其實在c語言中沒有所謂的真值和假值,只是認為非0為真值,0為假值。下為c語言邏輯運算||和&&的真值表:

14樓:匿名使用者

邏輯運算子把各個運算的變數(或常量)連線起來組成一個邏輯表示式。

邏輯運算子有4個,它們分別是: !(邏輯非)、 ||(邏輯或)、&&(邏輯與) ^(異或)。在位運算裡面還有 &(位與)、|(位或)的運算。

什麼是邏輯運算--邏輯運算用來判斷一件事情是「對」的還是「錯」的,或者說是「成立」還是「不成立」,判斷的結果是二值的,即沒有「可能是」或者「可能不是」,這個「可能」的用法是一個模糊概念,在計算機裡面進行的是二進位制運算,邏輯判斷的結果只有二個值,稱這二個值為「邏輯值」,用數的符號表示就是「1」和「0」。其中「1」表示該邏輯運算的結果是「成立」的,如果一個邏輯運算式的結果為「0」,那麼這個邏輯運算式表達的內容「不成立「。

例 1:通常一個教室有二個門,這二個門是並排的。要進教室從門a進可以,從門b進教室也行,用一句話來說是「要進教室去,可以從a門進『或者』從b門進」

用邏輯符號來表示這一個過程--能否進教室用符號c表示,教室門分別為a和b。c的值為1表示可以進教室,為0 表示進不了教室。a和b的值為1時表示門是開的,為0表示門是關著的,列表如下:

說明 c a b 2個教室的門都關著,進不去教室 0 0 0 門b是開著的,可以進去 1 0 1 門a是開著的,可以進去 1 1 0 門a和b都是開著的,可以進去 1 1 1

把表中的過程寫成邏輯運算就是: c = a || b 這就是一個邏輯表示式,它是一個「或」運算的邏輯表示式。這個表示式要表達的是這個意思--如果要使得c為1,只要 a「或」b其中之一為 1即可以達到。

所以「||」運算稱為「或」運算。

思考--如果有一個表示式 c = a || b || c 怎樣理解這個邏輯表示式?

例 2:假設一個房間外面有一個晒臺,那麼這個房間就縱向開著二個門,要到晒臺去,必須要過這二個門,很明顯這二個門必須都是開著的才行,否則只要其中一個門關著就去不了晒臺。列表如下:

說明 c a b 二個門都關著,去不了晒臺 0 0 0 門a關著,去不了晒臺 0 0 1 門b關著,去不了晒臺 0 1 0 門a與門b都開著,可以去晒臺 1 1 1

把表中的過程寫成邏輯運算式就是: c = a && b && c ,用一句話來描述這個表示式--如果要使得c為1,必須a『與』b都為1才行,否則其中任一個為0,c就為0。所以「&&」運算子稱為「與」運算。

思考--如果有一個表示式 c = a && b && c 怎樣理解這個邏輯表示式?

例 3:有一個問題如下,有一個晚會,對參加晚會的人有一定的條件限制,教師可以參加,學生當中只有年齡達到16歲以上的男生才能參加,怎樣用上面所講的邏輯運算來表達這樣的邏輯關係?

設能夠參加晚會為d,教師為a,男生為b,16歲以上為c,可以用下式來描述:

d = a || ( b && c ) /*這個表示式可以理解嗎,可以參照上面**用0、1來寫一下*/

例 4:下面是一個程式,用到了if判斷語句(if是如果的意思)

#include

void main()

邏輯量和邏輯值

在邏輯表示式裡有參加邏輯運算的邏輯量及邏輯運算最後的結果(邏輯值),把這二個概念區分開來和記住它們是很重要的。

什麼是邏輯量--凡是參加邏輯運算的變數、常量都是邏輯量。

我們來仔細分析一下哪些是邏輯量,哪些是邏輯值。

要表達一件事情是否成立是這樣描述的:「如果他來了,這件事情一定能成功」。用程式語句描述就是 if(a!

=0)在這個語句裡用變數a來表示他來與不來這件事,變數的值為1說明他來了,為0就是不來。在c語言中,一般不寫成這樣(如果一定要寫成if(a!=0),別人一看你的程式就知道你是程式設計菜鳥),而是寫成 if(a)。

括號裡面的變數a就是邏輯量。當該邏輯量的邏輯值為1時,if表示式為真,這時可以執行if 後的的程式語句。當該邏輯量的邏輯值為0時,if表示式為假,就不能執行if後面的程式語句。

可以看出,if表示式能否成立是要看「邏輯量」最後的「邏值值」是否為1來判斷的。

什麼是邏輯值--邏輯量、邏輯表示式其最後的運算結果的值就是邏輯值。邏輯值只能是「0」和「1」這二個數。「1」表示邏輯真(成立);「0」表示邏輯假(不成立)。

一切非「0」的邏輯量其邏輯值都為真。正確理解這句話很重要。例:

if(-1),這一句可以這樣來分析--首先「-1」是一個非「0」的邏輯量,它的邏輯值為「1」,那麼這個if語句就成為 if(1),這個if表示式成立。

思考:下面的式子中,哪個語句不被執行

int a=0,b=10; if(a) a+=10; if(b) if(b)a=0;

c語言中進行邏輯運算時要注意的問題:

例1:現在要判斷一個變數的值是否在12到30之間,很自然想到了這樣一個表示式:

scanf("%d",&a);

if(1212則為真,否則為假。設a的值為14,些時表

15樓:匿名使用者

達式結果為邏輯真,那麼整個表示式if(12這個新的表示式中的1是12,可以看到當變數a的值大於12的時候總有1<30,所以後面的<30這個關係表示式是多餘的了。另外假設a的值小於12也會出現這樣的情況。由些看來這樣寫法肯定是錯的。

正確的寫法應該是:

if((12

這樣不但編譯通過,執行結果也是對的了。

c語言 運算子%是怎麼運算的

16樓:噠噠噠噠蝸牛啊

c語言中%的作用:%作為運算子是用來取餘的

運算子(operator)是可以對資料進行相應操作的符號。如對資料求和操作,用加法運算子 '+',求積操作使用乘法運算子 '*' ,求餘數用運算子'%'。等等

例如 :

一、25%4=1 ;25除以4商6餘數是1

二、33%5=3  ;33除以5商6餘數是3

擴充套件資料:

c語言常用的運算子

1. 算術運算子

用於各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求餘(或稱模運算,%)、自增(++)、自減(--)共七種。

2.關係運算子

用於比較運算。包括大於(>)、小於(<)、等於(==)、 大於等於(>=)、小於等於(<=)和不等於(!=)六種。

3.邏輯運算子

用於邏輯運算。包括與(&&)、或(||)、非(!)三種。

4.位操作運算子

參與運算的量,按二進位制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。

5.賦值運算子

用於賦值運算,分為簡單賦值(=)、複合算術賦值(+=,-=,*=,/=,%=)和複合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。

6.條件運算子

這是一個三目運算子,用於條件求值(?:)。

7.逗號運算子

用於把若干表示式組合成一個表示式(,)。

8.指標運算子

用於取內容(*)和取地址(&)二種運算。

9.求位元組數運算子

用於計算資料型別所佔的位元組數(sizeof)。

10.特殊運算子

有括號(),下標,成員(→,.)等幾種。

c語言邏輯運算子順序,C語言邏輯運算子順序

邏輯運算子有三種,分別為 與運算 或運算 非運算 三者的優先順序順序為 ps.1 與運算子 和或運算子 均為雙目運算子。具有左結合性。非運算子 為單目運算子,具有右結合性。2 和 優先順序低於關係運算子,優先順序高於算術運算子。 a b c 1 a b c b c a b c ls,貌似 的優先順序...

c語言邏輯運算子,C語言中邏輯運算子的規則是什麼

伊婷婷 c語言中的邏輯運算子就三種,與 或 非,它們的優先極順序為非,與,或。它們含義如下,當操做數為真時,結果為假,反之也成立,並且它的優先極也最高,因為只有它是單目運算子,只有當兩個操做數都為真時,結果才為真,否則為假。只有當兩個操做數都為假時,結果才為假,否則結果為真。除了這些,邏輯運算子還有...

c語言邏輯運算子問題,c語言邏輯運算子 我不明白 和 到底是怎麼運算的

x y z 優先順序,所以上式等價於 x y z 這裡 x和 y z 是同級別的,表示式從左往右掃描,x成立,後面就直接跳過,輸出100 x y z 同理,優先順序 x y z x值是0,跳過 y 但是這隻能說明 的左邊是0,右邊還是要計算的,z執行了,所以最後輸出0,1,0 說明白點,這裡的優先順...