看板 Examination 關於我們 聯絡資訊
※ 引述《jojonina (努力)》之銘言: : 98身心障礙 : 求以下執行結果 : int i, j=2; : i=(j=3) && 1 ; : printf("%d %d \ n" , i, j); : i=-1 || (j=5); : printf ("%d %d \n", i, j); : i=0 || (j=5); : printf("%d %d\n", i , j); 非本科系 請問板上高手 : 這題 該如何下手呢?? 我知先用 邏輯運算子 判斷 true 或 false : 然後 呢?? : 請高手 指點 非常謝謝 不材第一次幫大家解答計概,若有錯誤,請四方各達高手不吝指教 此題考的邏輯運算概念 它具有一個很特別的現象就是"短路"現象 意思是說 以OR來說 前方若是True,後方的值無須變動 假若前方為FALSE,後方的值須在判斷 以AND來說 前方只要為FALSE,後方的值無須探討 舉個例子 AND 只要一個否定說(0),答案結論肯定為0 OR 只要一個成立說(1),答案結果必為1 反知此方式建立在此問題上 注意一下優先權問題 ()內記得先看 不材見解答案為 13 13 15 以上答案有錯誤,不吝指教~ 感謝版上的高手與已賜教~謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 115.82.235.109 ※ 編輯: Parents 來自: 115.82.235.109 (12/09 12:23)
leiyan:true or false怎會變成3? 12/09 13:20
silentlich:http://ideone.com/3UwEj3 12/09 13:47
Parents:好奇的點出來了~為何I = 1?? 12/09 14:25
Parents:下一篇文章有更好的解答唷~ 12/09 14:27
leiyan:我比較好奇你前面的說明正確但答案你還不知道為何錯 12/09 14:29
Parents:呵呵~我知道哪個環節出問題~程式碼沒看清楚~謝謝您的提醒~ 12/09 14:33
※ 編輯: Parents 來自: 115.82.235.109 (12/09 14:33)
leiyan:"前方若是成立,後方無須變動"再改吧... 12/09 14:38
a33445500:這題其實還有一個概念,就是運算的優先順序 12/09 14:44
Parents:我想請問l大這句話,為何需要改呢?短路現象不是這樣嗎? 12/09 14:50
leiyan:答案參考2樓 那句話點出你錯的地方 12/09 14:54
Parents:小弟迂腐~盼請l大說明並指教~謝謝~ 12/09 15:07
leiyan:i=-1 || (j=5);前面為1後面就會自動省略直接傳1給i 12/09 15:10
Parents:不好意思I=-1不是FALESE嗎?還是只是不要是0都是True? 12/09 15:17
silentlich:非0都是TRUE 12/09 15:25
Parents:謝謝您們給予我最佳的解釋,原來是這樣子~盲點已解惑! 12/09 15:28
※ 編輯: Parents 來自: 115.82.235.109 (12/09 15:33) ※ 編輯: Parents 來自: 115.82.235.109 (12/09 15:34)