C語言中用max函式比較兩個數的大小,為什麼結果總是472?求解釋程式內容在問題補充

時間 2022-06-24 14:25:02

1樓:匿名使用者

scanf("%d,%d",&a,&b); 注意這個%d,%d 你格式之間加逗號 那麼輸入值的時候一定要用逗號隔開

或者這裡你不要用逗號scanf("%d%d",&a,&b);

2樓:匿名使用者

你改用指標試試:

#include

void main()

int max(int *x,int *y)

3樓:匿名使用者

錯了兩個地方 一個是scanf(%d,%d,&a,&b);改為scanf(%d%d,&a,&b);

第二個if (x<=y) 寫反了 改為if (x>=y)#include

void main()

int max(int x,int y)

4樓:

。。。。scanf語句出了問題!

改為就ok了

5樓:我是百人敵

void main()

{int max(int x,int y); //這麼寫不對,宣告寫在外面(至於為何沒報錯不知道)

int a,b,c;

scanf("%d,%d",&a,&b);

6樓:匿名使用者

偶說錯了 你沒寫輸出函式呢 後面加一句 printf("%d",c);

7樓:

**是對的。輸資料是按要求就行。

在c語言中max函式呼叫怎麼比較大小總是不對,要求輸出大的一個值。

8樓:匿名使用者

輸入1和2之間不能空格,用逗號

9樓:至娛與至樂

z=(x>y)?x:y;//修改一處,加一個括號

return z;//修改二處,去掉一個括號

10樓:匿名使用者

您嘗試使用指標:

#包括中

無效的主要()

c語言程式,要求兩個數通過函式呼叫比較兩個數的大小,並把大數返回給主調函式,輸出這個數。

11樓:李

/*#include

void main()

printf("%d",*p3);

}int max(int *p1,int *p2)*/#include

void main()

int max(int *p1,int *p2)

12樓:匿名使用者

int max(int *p1,int *p2)你之前那

復個函制

數根本沒bai有du

進行比較zhi,

改成dao

int max(int *p1,int *p2)

13樓:

你要通du過呼叫函式實現應該可

zhi以dao

用以下**:

回#include"stdio.h"

答int max(int a,int b)void main()

14樓:匿名使用者

max函式裡

抄你根本沒有對*p1和bai*p2作比較,du應該zhi這樣寫:

int max(int *p1,int *p2)另外,main函式中的

if(a>b)

max(p1,p2);

刪掉,因為根dao本沒用。

15樓:匿名使用者

# include

void main()

{int a,b,max;

scanf("%d,%d",&a,&b);

max=a;

if (max這個程式可

以比較兩個數的

回大答小

16樓:灼冰

你的邏輯不亂專麼屬

#include

void main()

int max(int *p1,int *p2)

c語言,呼叫max函式那裡不懂,為啥是c=(a,b),括號裡面的a和b是什麼含義

17樓:匿名使用者

max函式是求兩個整數裡的最大值,a跟b就是設定的兩個變數,也就是你到時候除錯這個程式時需要輸入的兩個整數值,其實ab也可以換成mn,所以說它們只是兩個變數在這個程式裡的英文符合。

18樓:天馬行空海上花

c = max(a,b)

max(a,b)是個函式,a,b作為函式的輸入,c作為函式的輸出

程式執行到這一步時,把a,b的值傳給函式中的x,y,比較完成後返回大的那個z給c

19樓:

a,b就是要比較的兩個數,他們的值由上面的scanf函式輸入

20樓:

max函式需要兩個引數來進行比較大小, a,b就是傳遞進去的引數.

c語言函式程式.下面程式max函式放在main函式前和後為什麼結果不一樣? 20

21樓:匿名使用者

float  max(float x, float y) //你這裡返回值型別沒有寫,預設會是int,導致返回的資料與實際資料不相符了!

你放到後面時,有沒有進行函式宣告?

如果沒有,應該編譯報錯的!

22樓:冉

/*自定義函式有兩種方式實現:*/

//第一種方式:就是你的那種方式

float max(float x, float y)float z;

z = x > y ? x:y;

return z;

int main()

c = max(a, b);

return 0;

//第二種方式如下:

float max(float x, float y);

int main()

c = max(a, b);

return 0;

float max(float x, float y)float z;

z = x > y ? x:y;

return z;

/*我們以前寫c的時候第二種方式最常用,感覺也比較規範一些*/

23樓:匿名使用者

你賦值的c是int整型,所以最後答案6.5會取整型變成6,另外你應該少拷貝了 max函式名前面應該有型別。

24樓:紅葉聯隊

首先c是int型,而返回值z是浮點型,所以結果變成了整數

再者,max()放在main()前,則不用在main()裡申明,若放在後面,必須申明

我都試了下,沒什麼錯誤

25樓:風雷九州

1、max沒有明顯制定返回值型別,編譯器會預設返回值為int。

2、max放在main函式的開始,main函式會知道max函式的型別定義,知道需要傳入兩個引數,所以功能可以實現。

3、max放在main函式的後面,main函式就不知道max函式的型別定義,雖然**裡顯示呼叫max函式並傳入了引數a和b,但是編譯器並不認為max有兩個引數,仍然認為max沒有引數,所以輸入的1.5和6.5不會傳給max,那麼max計算的就不是樓主傳入的最大值了。

max函式執行時,得到的引數值堆疊裡面的隨機值,所以算出來了1。

具體的原因樓主可以看一下編譯出來的組合語言,就知道原因了。或者打一個斷點在max函式裡面,看看引數的值也是可以確定的。

26樓:莊周他老子

不可能吧 大哥。你這個子函式都沒返回型別,你返回個float的能有返回結果麼?

27樓:匿名使用者

什麼叫 max函式放在main函式後

關於c語言中的求兩數最大值程式問題

28樓:用來玩

int max(int a,int b)

這是一個自定義函式,作用就是比較大小。z=max(x,y); 這一句就是呼叫這個函式,呼叫後 return b;就是返回大的值給z, printf("%d",z);

就可以輸出了大值

29樓:

函式 max 的作用就是進行比較操作的。

在你呼叫 max 之前就要定義,應該把函式max的定義放在 main函式之前。

30樓:想愛你而又不能

不可以,你主程式呼叫的就是它啊,你如果去掉了就會報錯,它是函式max的實現 把a和b傳進去判斷,把大的那個返回去給z

31樓:匿名使用者

不可以去掉,這是個求兩數最大值的函式,因為main函式必須呼叫它來求兩數最大值,即語句z=max(x,y);呼叫它來求輸入的兩個數x和y的最大值.這是整個程式的核心,也是整個演算法的核心,絕對不能去掉.

c語言比較兩個數大小為什麼一直不對

32樓:聽不清啊

程式沒有問題。上面就是這個程式未加修改,直接編譯後執行的結果。

問題在於這個程式,要求兩個數字之間要以英文的逗號作為分隔的。

#include

int main()

int max(int x,int y)

33樓:

測試結果是對的。

scanf("%d,%d",&a,&b); 從終端輸入兩個數,以逗號隔開。

34樓:熱情的大神

#include

int max(int x,int y);

int main()

int max(int x,int y)

結果沒什麼問題

在c語言中如何將兩個數進行互換,在C語言中如何將兩個數進行互換

將兩個數進行互換的方法有兩種形式 1 藉助中間變數完成,此方法直觀,易理解,使用最多2 不需要中間變數,通過變數身的運算完成交換。方法1 int a 2,b 3,t t a 先將a儲存到臨時變數t中 a b 將b儲存到a中 b t 將臨時變數中的原a值儲存到b中printf a d b d n a,...

c語言中判斷兩個陣列內容是否相同

墨汁諾 c語言有個函式memcmp是用來進行記憶體比較的extern intmemcmp void buf1,void buf2,unsigned intcount if 0 memcmp id,id1,20 id1等於id2 先要明確運算子按優先順序不同分類,c程式設計 運算子可分為15種優先順序...

c語言中在函式中用static修飾的變數還能給

隆隆 樓主 可是c語言中說 有時希望函式中的區域性變數的值在函式呼叫結束後不消失而保留原值,這時就應該指定區域性變數為 靜態區域性變數 用關鍵字static進行宣告。所謂的結束後不消失保留原值是指當前函式結束後該static變數所佔的記憶體不釋放。函式內一般定義的變數 auto 變數 在函式執行結束...