看板 Examination 關於我們 聯絡資訊
下列C程式會印出何值? #include<stdio.h> void main(void){ int n=0; if(n=0)n=1; else if(n=1)n=2; else if(n=2)n=3; else if(n=3)n=4; printf("%d\n",n); } 請教各位資訊前輩 小弟認為此題答案應該為1 因n一開始被指派為0 而在if的第一個條件式if(n=0)也符合 照理來說應該不會在執行下方程式 但答案卻是2 不知是哪裡沒有想清楚 還請各位資訊前輩教導 感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.141.140.22 ※ 文章網址: https://www.ptt.cc/bbs/Examination/M.1481616882.A.6F4.html
wave1et: 你認為? 去查書吧,程式都有規則的。別自以為是了 12/13 16:21
ixjnkeewnoxx: = 和 == 的問題 12/13 16:21
wave1et: 這題跟蔡XX C語言範本的題目一模一樣 12/13 16:21
sups06666: http://i.imgur.com/sTmZfUY.jpg 12/13 16:50
carthur: 因為 if (n=0) 不符合,其他也都不符合,就直接 else n=2 12/13 16:55
carthur: 2樓說對了,if 要用 == 的布林來判斷。 12/13 16:56
blueclock: 感謝各位高手指教 12/13 16:58
ixjnkeewnoxx: 比較詳細的說法是 if(n=0)表示0指定給n所以if的條件 12/13 17:05
ixjnkeewnoxx: 判斷變成if(0)為false 所以跑到下一行else if(n=1) 12/13 17:06
ixjnkeewnoxx: 等同於判斷 if(1)為true 所以程式執行n=2; 結果為2 12/13 17:07
blueclock: 謝謝i大詳細解說 12/13 17:20