c程式比較數大小,c程式比較三個數大小

2022-02-05 05:00:28 字數 6494 閱讀 3309

1樓:

1.scanf函式使用錯誤,應改為 :

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

需要注意的是,上述語句在輸入資料時需要加「,」,如「2,3,4」。

如果"%d"是連著寫的,例如:scanf("%d%d%d",&a,&b,&c);

則在輸入資料時,資料之間不可以用逗號分隔,只能用空白字元(空格、tab鍵或者回車鍵)分隔。

2.函式max( )錯誤,若z為最大值時,函式無返回值。函式max( )應修改為:

int max(int x, int y, int z) {

if (x>y) m=x;

else m=y;

if (z>m) m=z;

return(m);  //返回最大值m

資料拓展:

scanf函式的呼叫格式為:scanf("《格式化字串》", 《參量表》);

函式的第乙個引數是格式字串,它指定了輸入的格式,並按照格式說明符解析輸入對應位置的資訊並儲存於參量表中對應的指標所指位置。每乙個指標要求非空,並且與字串中的格式符一一順次對應。

2樓:蘇木槿華

改成這樣:

#include

void main()

int max(int x,int y,int z)

3樓:娛樂小八卦啊

**沒有問題,

不過你的輸入沒按照你自己scanf所設定的格式來scanf("%d,%d,%d",&a,&b,&c);

這麼寫的話,你應該這麼輸入:

1,7,8(回車)

或者2,5,3(回車)

別忘了逗號,也別忘了將3個數都輸完再回車

如果這麼寫,

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

就可以這麼輸入:

2(回車)

3(回車)

1(回車)

擴充套件資料c語言編寫3個數比較大小其他**樣例:

# include //標頭檔案

int max(int x,int y,int z); //宣告子函式

void main()//主函式

int max(int x,int y,int z)//子函式體,比較大小返回最大值

4樓:匿名使用者

輸入三個數

找到最大的和最小的

輸出三個數。

#include

int main()

5樓:匿名使用者

# include

int main()

int max(int x,int y,int z)elseif(e>z)else

return (f);

}//加上完整的{}試試

6樓:匿名使用者

程式沒什麼問題,是不是你不知道怎麼輸入。

你規定的輸入格式是三個數之間用逗號分隔。如果你輸入時用空格分隔,就會出現你所說的情況。

應該是你根本就不知道你寫的程式語句具體是什麼意思。

另外,程式太複雜了,一條語句可以解決問題的事情,搞得這麼複雜。

7樓:匿名使用者

main函式中沒東西,有個分號用的是中文的,還有些細節有問題,大致改了一下:

#include

int main()

還有不懂可以問我。

8樓:

這個是以前練習三目運算子寫的,不用考慮演算法吧# include

int main()

else if(b > i && b < l)//同上else//同上

return 0;}

9樓:小伙兒說人文

倒數第二行 else return(m); 去掉else。你max()函式的思路是,首先比較x,y,兩者較大的值賦值給變數m。然後再用m跟z比較,較大值還是賦給m,最後返回m。

如果有else,意思是當z小於等於m時,才返回m,函式存在沒有int返回值的情況,會報錯。

int max(int x,int y,int z)

10樓:匿名使用者

#include

void main ()

if (a>c)

if (b>c)

printf ("從小到大排列為:%.2f,%.2f,%.2f",a,b,c);

printf ("三個數中最大為:%.2f,最小為:%.2f",c,a);

}可比較整數和小數。

11樓:魔法師00可可

樓主加標頭檔案了嗎

#include

或者就是樓主輸入的資料不符合規範

比如說: 4,5,6 回車

中間用逗號隔開

12樓:匿名使用者

#include

void main()

13樓:mr飯小盒

scanf 函式 用法錯了吧~呵呵...沒關係 多注意一點 你也看得出來的~

scanf("",);就像你寫的...引號裡 是資料的型別...都好後面 就是 資料的儲存位址~

你的第六行...scanf...是不是 沒有 引號...

感覺 你是粗心錯的...並不是你不懂吧...格式你差不多 也ok...

14樓:匿名使用者

int max;要放到 int a,b,c;的後面。正確如下:

main()

15樓:匿名使用者

真是比較無語了.

首先你必須把 int max() 放到 main()上面, 這才是程式最大的問題.

再試試看得到什麼結果

三樓提到的也是個常見病. 大家輸入數字時很少人會 1, 2, 3, 而是12

3看你自己的習慣決定怎麼改動 scanf("%d,%d,%d") 是否去掉裡面的","

16樓:

# include //標頭檔案

int max(int x,int y,int z); //宣告子函式

void main()//主函式

int max(int x,int y,int z)//子函式體,比較大小返回最大值

17樓:不知道

#include

main()

18樓:匿名使用者

下面是我在vc6中的**

#include "stdafx.h"

#include "stdio.h"

void main()

輸入 4,5,6 然後回車 輸出為max=6沒錯啊。 你是不是忘加

#include "stdio.h"了。

19樓:匿名使用者

第六行換成 scanf("%d%d%d",&a,&b,&c);

去掉最後乙個else

c語言 比較三個數大小

20樓:水不流則腐

比較方法:

1、比較從第乙個數開始,先比較第乙個數和第二個數的大小,如果第乙個數大於第二個數,則將第乙個數和第二個數互換;不大於(即等於或小於)則不作處理。

2、然後,再將第二個數和第三個數比較,同樣,若大於則將它們互換。

以1 2 3為例 先考慮我們所有的可能輸入型別(這裡不一一枚舉):1 2 3;3 2 1 ;2 1 3;1 1 1;1 2 2;1 2 1;整體的思路為輸入三個數後,我們從中取兩個數,在這兩個數中選出最大的後將最大的數與第三個數做差比較這裡請參考**理解;

**:#include

int comp(int x,int y)

return x>y?x:y;

int main()

int i,j,k;

int a,b,c;

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

j=comp(a,b);//j為兩個數里最大的值

k=c;//a+b-j求的是a,b裡比較小的那個數;

if(j-k<0) //說明k最大按順序輸出就可以了1 2 3;2 2 3

if(j-k>=a+b-j)//3 2 1

if(j-k總結:

其實這個**本質也和用if語句比較大小排序差不多,只不過這裡不需要每次都呼叫三個if語句,直接一條if語句便可輸出答案效率更高一點。

21樓:蘇寄蕾桓舒

程式沒什麼問題,是不是你不知道怎麼輸入。

你規定的輸入格式是三個數之間用逗號分隔。如果你輸入時用空格分隔,就會出現你所說的情況。

應該是你根本就不知道你寫的程式語句具體是什麼意思。

另外,程式太複雜了,一條語句可以解決問題的事情,搞得這麼複雜。

22樓:小笑聊情感

在max函式裡,else後面應該寫m = y;而不是m = z;另外max宣告可以放在main()裡面;如下: # include int main (){ int max

23樓:赫連騫澤塗佈

a=2/25

b=1/6=4=24

c=1/5=5/25

首先可以看出c大於a.

24*25=600

b=100/600....c=120/600...所以b小於c。

所以三個數的大小是。c最大。b第二大。。a最小。

24樓:卿倚墨安福

出錯的原因是,函式裡不可以巢狀函式。

你在main裡巢狀定義了max函式,這是不允許的。

解決方法:

(1)main後面的2個大括號去掉1個

(2)int

max函式體放到最後,int

max函式那行末尾的分號去掉

(3)return

0;移到

if(c>d)

printf("%d\n",c);

else

printf("%d\n,d");

的後面,}的前面

25樓:波暢鄲嫚

輸入的3個數之間用西文半形逗號分隔

26樓:匿名使用者

#includeint main()

27樓:

# include

void main()

int max(int x,int y,int z)你是不是輸入格式有誤啊?

28樓:匿名使用者

#include

/* 這才是三個數的比較*/

int main()

29樓:匿名使用者

我看了一下底下的答案,幾乎都是錯的,只要用10 21 9測試,把資料從小到大輸出就會發現結果不對了。這是我的演算法,你可以參考一下。

30樓:匿名使用者

# include

int main()

int max(int x ,int y ,int z)

31樓:匿名使用者

你這由於只有三個數字,所以還是很簡單的,完全可以用傻瓜的方法if(a>=b&&a>=c)

printf("%d",a);

if(b>=a&&b>=c)

printf("%d",b);

if(c>=a&&c>=b)

printf("%d",c);

反而比排序演算法執行效率高

32樓:匿名使用者

/* //三個數比較大小

int x,y,z,q,w;

printf("請輸入三個要比較的整數:");

scanf("%d %d %d",&x,&y,&z);

if (x>y)

else

if (q>z)

else

printf("三數中最大的為:%d",w);*/

33樓:藍兔小童鞋

#include

int main()

if(a

if(b

printf("%d %d %d\n",c,b,a);

return 0;

}原理就是運用冒泡演算法,把最大的數浮在最上面,而小的數就下沉,最後就輸出。

34樓:千鍾家的縫合怪

把輸入法改一下你的逗號可能不對 ,和,不一樣

35樓:

int m,int n;

這行直接用int m,n;表示就行了

scanf("%d,%d,%d",&a,&b,&c);把"%d,%d,%d"之間的逗號去除.

36樓:匿名使用者

#include

int main()

C 中數比較大小的程式

只要去掉程式第一行,h是從c語言中保留下來的,在c 中同樣適用,在c 中,可以 includeusing namespace std 同樣可以,學c 的建議用後者 include int main int max,a,b,c cout 依次輸入三個整數,本程式將對其比較大小,並輸出最大的數。n co...

用C語言編寫程式,用C語言編寫三個程式

第一題 include include include include void fun char str,char c intmain void fun char str,char c 第三題 include include define n 4 typedef structshu intmain...

C怎麼在程式中呼叫另程式,C怎麼在乙個程式中呼叫另乙個程式

這個可以試試動態鏈結庫或者簡單的比如system 程式路徑 c 怎麼在程式中獲得 另外乙個程式的控制代碼?具體是哪個函式名我忘記了,你自己查函式手冊吧!先用快照函式獲得系統所有程序列表,可以得到程序id,然後通過id得到該程序的控制代碼。hwnd findwindowa 類名,標題 返回hwnd控制...