[课业] 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