1樓:匿名使用者
首先你的懂得if()的括號中的東西是用來判別的,所以裡面的東西要麼為真,要麼為假,但在c中代表真假就是1和0啦!
所以這裡的if(0k2),ok2是個變數,如果它的值為0,即就是假,那麼不執行if下帶的語句,跳過執行其它語句,如果ok2的值為1或者》1,那麼執行if的下帶語句,即a=10.
至於你的if(!ok1),也一樣的,如果ok1的值為0,那麼!0就等於1,所以條件為真,執行if的下帶語句,即a=1.同理就相反咯!
現在我們來看你的程式,
首先你的連續三個if來作為判斷,除非每個都為真,才會執行a=1,但是看看,三個if裡面的最後一個顯然為假,所以不執行其下帶語句,而執行else if,但它裡面的條件也為假,所以最後執行a=-1;
但樓主這裡注意了,即使你的if執行了a=1,或則執行了else if中a=10,但最後都還有一個賦值語句a=-1,所以不管怎樣都是a=-1。
我首都嘛啦...嘿嘿,樓主懂了不?
2樓:匿名使用者
if(!ok1)
如果變數ok1等於0
if (ok2)a=10;
如果ok2不等於0
這裡0等於false的意思。
3樓:通才玩家
if(!ok1)
指如果ok1的非,不是0(fasle),即ok1為0(fasle)時執行a=1,否則執行else,
if (ok2)a=10;
如果ok2不為0,執行a=10,否則執行下一句a=-1。
4樓:匿名使用者
if後面的() if的條件
!表示非
則!ok1 表示ok1的非 如果ok1=0 則()中的ok1表示邏輯非 則!ok1表示表示邏輯真 即執行if後的語句 如果ok1不=0 則表示邏輯真 則!
ok1=0表示邏輯非 即不執行if後的語句
同理ok2 當ok2=0表示邏輯非 ok2不=0表示邏輯真
5樓:堅強的菜青蟲
1 if(!ok1)是什麼意思?
先給你說說這個吧,if當中是邏輯判斷,當為0的是後為假,if後的語句就不執行。如果為1的時候為真,if後的語句執行。
題目中很明顯,ok1為5,所以非5就是為0,假,if後的語句就不執行。
2 if (ok2)a=10;什麼意思,怎麼執行?
這個就是一樣了,ok2為0,假,if後的語句也不執行,就只能執行a=-1;
所以執行結果為1。
C語言小問題,C語言一個小問題
區別 一個是指向結構體變數的指標,一個是指向整形變數的指標。詳細說明如下 struct student p指向結構體變數的指標 struct 結構體名 結構體指標變數名 執行結果 int p變成了指向整形變數的指標 編譯執行 錯誤 不同的變數型別,p並不屬於整形變數類指標。 你.是不是諶衛軍老師班上...
C語言小問題,C語言一個小問題
儘量不要使用這樣的 因為不同編譯器可能會得到不同的結果。上面是逗號運算子,從右向左進行 結果 n 先使用,即輸出1,再減1 n 這時 n 0,加1,使用,即輸出1n 先使用,即輸出1,再加1 printtf 語句結束後,n 2 c語言的輸出運算是從右向左運算的,但是輸出形式是從左往右!所以先計算n ...
C語言小問題,C語言一個小問題
這個問題的關鍵在於 if k n printf n 這句話。因為只要執行了if n j 後面的複合語句。k n一定成立。k 到k n時,不滿足k 其實去掉if k n 光保留printf n 同樣能得出上面的結果。既然你不想要最後一句的 n。那不妨這樣一改就可得到你想要的 把if k n print...