[課業] 91年普考計概

作者: blueclock (小楊)   2016-12-13 16:14:40
下列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
不知是哪裡沒有想清楚
還請各位資訊前輩教導 感恩
作者: wave1et (百分百殖利率)   2016-12-13 16:21:00
你認為? 去查書吧,程式都有規則的。別自以為是了
作者: ixjnkeewnoxx (Zapdos)   2016-12-13 16:21:00
= 和 == 的問題
作者: sups06666 (sups06666)   2016-12-13 16:50:00
作者: carthur (carthur51)   2016-12-13 16:55:00
因為 if (n=0) 不符合,其他也都不符合,就直接 else n=22樓說對了,if 要用 == 的布林來判斷。
作者: blueclock (小楊)   2016-12-13 16:58:00
感謝各位高手指教
作者: ixjnkeewnoxx (Zapdos)   2016-12-13 17:05:00
比較詳細的說法是 if(n=0)表示0指定給n所以if的條件判斷變成if(0)為false 所以跑到下一行else if(n=1)等同於判斷 if(1)為true 所以程式執行n=2; 結果為2
作者: blueclock (小楊)   2016-12-13 17:20:00
謝謝i大詳細解說

Links booklink

Contact Us: admin [ a t ] ucptt.com