c語言比較數大小,c語言 比較三個數大小

時間 2021-10-17 05:12:04

1樓:水不流則腐

比較方法:

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語句便可輸出答案效率更高一點。

2樓:蘇寄蕾桓舒

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

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

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

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

3樓:小笑聊情感

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

4樓:赫連騫澤塗佈

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最小。

5樓:卿倚墨安福

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

你在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");

的後面,}的前面

6樓:波暢鄲嫚

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

7樓:匿名使用者

#includeint main()

8樓:

# include

void main()

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

9樓:匿名使用者

#include

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

int main()

10樓:匿名使用者

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

11樓:匿名使用者

# include

int main()

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

12樓:匿名使用者

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

printf("%d",a);

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

printf("%d",b);

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

printf("%d",c);

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

13樓:匿名使用者

/* //三個數比較大小

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);*/

14樓:藍兔小童鞋

#include

int main()

if(a

if(b

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

return 0;

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

15樓:千鍾家的縫合怪

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

16樓:

int m,int n;

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

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

17樓:匿名使用者

#include

int main()

18樓:放飛自我的鐘老師

不要max也可以解,max反而容易混淆。

個人喜歡表示式?:邏輯簡單,步驟少:先比較出最大值,其餘兩個值再排二三名。

# include

main()

19樓:匿名使用者

這個問題沒能幫助上你表示抱歉,希望你不要生氣,好不好

用C語言編寫比較數大小的程式,要求同時輸出最大和最小的數

include stdio.h void main printf 這六個數中的最大值和最小值分別是 d d max,min include void main printf 最大數是 lf,最小數是 lf n in 5 in 0 快樂在飛翔 include stdio.h float a 6 flo...

為什麼c語言比較難學,為什麼C語言比較難學? 10

不是啦!c語言入門還是比較容易的,很多人都說c語言是高階語言中的低階語言,是應為它可以直接接觸到底層的東西,如直接讀寫記憶體等,也正因此c語言也是一種很靈活的語言。也許難就難在它的靈活性上吧。 我就學不來,為了學c語言我大學報了補習班,但是2次考試都沒通過。 淡淡的死去 c語言也不是很難學,多看看,...

C語言的題目,比較初級。這C語言題目選哪個?

應該選b,這個是概念性的東西,課本上應該有。應該選擇a 因為uxb value是乙個聯合體,因此成員共用記憶體,所以只有乙個有效成員。b錯誤的原因在於sxb value是乙個變數而非結構體型別名,結構體型別名是xingbie,對於共用體也是如此。c錯誤的原因在於字元陣列並非只能記錄性別,而可以記錄其...