?? 例5.3.txt
字號:
例5.3有一函數:
y=-1(x<0)
0(x=0)
1(x>0)
編一程序,輸入一個x值,輸出y值。
可以先寫出算法:
輸入x
若 x < 0y =-1
若 x = 0y = 0
若 x > 0y = 1
輸出y
或:
輸入x
若 x < 0y = -1
否則:
若 x = 0y = 0
若 x > 0y = 1
輸出y
也可以用流程圖表示,見圖5.7。
有以下幾個程序,請讀者判斷哪個是正確的?
程序1:
main()
{int x,y;
scanf("%d",&x);
if(x<0)y=-1;
else if(x==0) y=0;
else y=1;
printf("x=%d,y=%d\n",x,y);
}
程序2: 將上面程序的if語句(第4~6行)改為:
if (x>=0)
if (x>0)y= 1;
else y= 0;
else y=-1;
程序3: 將上述if語句改為:
y=-1;
if(x!=0)
if(x>0) y=1;
else y=0;
程序4:
y=0;
if(x>=0)
if(x>0) y=1;
else y=-1;
只有程序1和程序2是正確的。程序1體現了圖5.7的流程,顯然它是正確的。程序2的流程圖見圖5.8。它也能實現題目的要求。程序3的流程圖見圖5.9。程序4的流程圖見圖5.10。它們不能實現題目的要求。請注意程序中的else與if的配對關系。例如程序3中的else子句是和它上一行的內嵌的if語句配對,而不與笫2行的if語句配對。為了使邏輯關系清晰,避免出錯,一般把內嵌的if語句放在外層的else子句中(如程序1那樣),這樣由于有外層的else相隔,內嵌的else不會被誤認為和外層的if配對,而只能與內嵌的if配對,這樣就不會搞混,如像程序3和程序4那樣寫就很容易出錯。
出錯。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -