1樓:
問題出在主程式中第二個if前沒有else!把第二個if改成else if就可以了。
原因:第乙個if比較時123>23 && 123>34成立,所以s=123;然而,第二個if肯定是不成立的,所以就執行了else後面的語句s=y,使最大值s=23了。第二個if改為else if後執行就是唯一的了,三個判斷永遠只執行乙個……
另:最好不要用max做函式名,它是有些編譯器的保留字,遇到這樣的平台連編譯都通不過。要用些系統不會用的識別符號,如mymax、mymax,max3等等……
供參考……
2樓:
第二個if前加個else
#include"stdio.h"
main()
int max(int x,int y, int z)
3樓:
第乙個if語句沒有else,第二個語句的else有問題,有可能 s=y;
我把你的函式改了,就對了
int max(int x,int y, int z)
4樓:匿名使用者
因為else是和最近的if搭配的,以下是執行步驟:
第1步:因為x=123,y=23,z=34,所以s=123;
第2步:因為if表示式語句為假,所以不執行子語句s=z;
第3步:因為else與上面的if配套,而if的表示式語句為假,所以要執行else的語句s=y;
第4步:返回s;
因此最後是s=y=23。
C語言的輸入輸出,c語言是通過什麼來輸入輸出的?
char a a int b 20 printf d,d a b,b a a a a a 1 這個怎麼輸出,最好是有步驟的說,謝謝。輸出66,34 計算a 1 因為a a asicl碼值是65 此時a 66輸出 a b,b a 逗號表示式的返回值是最右邊的 而最右邊的是賦值式,它的值就是被賦值的結果...
C語言相關數問題,C語言相關數問題
include int main int temp,n,number 90 key printf 請輸 入這組數字的個數 scanf d n printf n請輸入這組數字,每行乙個 n for temp 0 temp相關數 scanf d key printf n相關數為 n for temp 0...
C語言問題,由鍵盤輸入字母,輸出其ASCII碼值
這是簡單的 include math.h void main 你可以隨便轉換大小寫 希望能解決你的問題 include int k void show void choose void main c語言的小問題 由鍵盤輸入乙個小寫英文本母,先輸出該字母及ascii碼值,然後輸出它的大寫字母及asci...