91年普考計概 - 普考

Table of Contents

下列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

不知是哪裡沒有想清楚

還請各位資訊前輩教導 感恩

--

All Comments

Charlotte avatarCharlotte2016-12-14
你認為? 去查書吧,程式都有規則的。別自以為是了
這題跟蔡XX C語言範本的題目一模一樣
Lauren avatarLauren2016-12-17
= 和 == 的問題
Dorothy avatarDorothy2016-12-18
因為 if (n=0) 不符合,其他也都不符合,就直接 else n=2
Regina avatarRegina2016-12-20
2樓說對了,if 要用 == 的布林來判斷。
Linda avatarLinda2016-12-23
感謝各位高手指教
Elizabeth avatarElizabeth2016-12-28
比較詳細的說法是 if(n=0)表示0指定給n所以if的條件
Robert avatarRobert2017-01-01
判斷變成if(0)為false 所以跑到下一行else if(n=1)
Wallis avatarWallis2017-01-03
等同於判斷 if(1)為true 所以程式執行n=2; 結果為2
Dinah avatarDinah2017-01-07
謝謝i大詳細解說