1樓:匿名使用者
>為什麼輸入2.5和1.5,輸出倒是2,但倒過來輸怎麼會得1你呼叫的是c=max(a,b),兩個引數; 定義的是max(float x,float y,float z);三個引數,雙方不一致.因此到函式max中取出的x,y根本不是你預想的a,b(一般這時候x=0,y不好說).
不信你可以在max函式中輸出x,y看看.
解決辦法:前面加max函式原型說明:int max(float,float); 以便編譯時雙方協調引數,避免錯誤:
int max(float,float);
void main()
int max(float x,float y)另外:
1. #include 根本沒用,沒有必要放在這裡.2. 如果沒有特殊要求,max()還是返回float為好.
2樓:
#include
void main()
float max(float x,float y,float z)這個正確
3樓:匿名使用者
因為你把它列印出來的資料型別是整型嗎.printf("max is %d\n",c);
4樓:匿名使用者
float c;
scanf("%f%f",&a,&b);
c=max(a,b);
printf("max is %f\n",c);
5樓:匿名使用者
c變數的型別啊 呵呵
c語言的問題,C語言問題?
魘傳說 這個 的作用就是利用do while將陣列算出來,然後利用for迴圈遍歷,倒序輸出陣列。我感覺很奇怪,devc 出來的結果是10010。我算出來的結果應該是00010,因為強轉int型別應該是取0的,而不是取1.然後我用c 試了多個數字,發現所有的結果都是以1開頭,至於為什麼我也不知道,希望...
c語言問題,C語言問題。
考驕 用指標將兩個字串連結接起來,前一個while迴圈,確定s1字串走完,第二個while開始將s1的逐個字元複製給s1走完,也就是末尾,這樣就可以把字串都匯入到s1中 最後一個空寫的應該寫return s1 長魚修韋 很久沒碰這東西了。我來解釋下 第一個while的迴圈是為了讓指標指向第一個字串的...
C語言問題,c語言問題?
自我程式設計 列印輸出乙個ok。因為前面迴圈for語句有分號結束。所以後面的printf語句不在迴圈內,不受迴圈語句影響。 理佑平鄲胭 結果是22 7 7 8 22 你可以將 i i i i是先 1再計算,還有這裡的運算順序是從左到右,所以應該是7 7 i 14 8 22 前兩個相加時,i先加1,加...