c語言寫出輸入整數要求按由大到小的順序輸

2021-08-10 04:06:23 字數 5249 閱讀 7830

1樓:

你可以利用 c 標準庫 stdlib.h 裡的 qsort( ) 完成任何型別的陣列的快速排序:

#include

#include

int compare( const int *a, const int *b )

int main( )

呼叫 qsort( ) 只需要傳入四個引數:

1)陣列指標:指向要排序的陣列

2)陣列的元素個數

3)陣列的元素位元組長度

4)函式指標:指向我們定義的一個比較兩個元素大小的函式

若是要 qsort( ) 做由小到大的排序,我們定義的函式的返回值和相應的條件必須是:

返回值      條件

*****=    *****

< 0       *a  <  *b

0       *a == *b

> 0       *a  >  *b

要達到以上的要求其實就只需寫 「*a - *b」 。

而若是要 qsort( ) 做由大到小的排序,把 *a 和 *b 的位置換一換就行了。

2樓:長鯨高淑穆

4個整數的排序,有使用單個變數和使用陣列二種方法實現。

使用單個變數的方法:

#include

intmain()

if(a>c)

if(a>d)

if(b>c)

if(b>d)

if(c>d)

printf("%d

%d%d

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

return0;}

使用陣列和迴圈的方法:

#include

intmain()

for(i=0;i<4;i++)

//輸出4個資料

printf("%d

",a[i]);

printf("\n");

return0;}

3樓:仝秀花來緞

用冒跑法寫:

main()

for(i=1;i<=4;i++)

printf("%d",a[i]);

/*輸出從小到大的四個數*/}

4樓:龍車花卉

#include "stdafx.h"

void mysort(int* pdata,int count)

c語言程式設計題:輸入4個整數,要求按由小到大順序輸出怎麼編啊?

5樓:小心_不在犯錯

#include

int main()

if (a > c)

if (a > d)

if (b > c)

if (b > d)

if (c > d)

printf("由小

dao到大輸專

出屬:%d %d %d %d\n",a,b,c,d);

return 0;}

6樓:黑白say晚安

一、氣泡排序,**和執行結果如圖所示。

重複地走訪過要排序的元

素列,依次專

比較兩個相鄰的元素,如果屬他們的順序(如從大到小、首字母從a到z)錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素已經排序完成。

二、選擇排序,**和執行結果如圖所示。

思想:選擇排序,讓陣列中的每一個數,依次與後面的數進行比較,如果前面的數大於後面的數,就進行位置的交換。換個說法,選擇排序:

第一個數依次與後面的數比較,第一次比較完之後最小的數在最前面 。

7樓:加百列

利用函式的模組copy化設計。

1、完成整體bai函式格局,輸入、du排序、輸zhi出。

2、輸入函式**如下

dao:

3、排序函式**如下:

4、輸出函式**如下:

5、執行結果:

8樓:圖圖的大耳朵鴨

使用氣泡排序法進行程式設計:

解釋:1.第一個for迴圈:利用陣列迴圈輸入4個變數。

2.第二個回for迴圈:該迴圈的意思是答如果a[0]>a[1]的話,兩個變數的值交換,利用迴圈依次比較。

要注意的是i<3,因為其中有i+1,i最大取到2,也就是i+1最大取到3才正確。

3.第三個for迴圈:利用迴圈依次輸出排序後的陣列,每輸出一個加一個空格以便於區分。

9樓:

最愚蠢的方法:

# include

main()

; if(a>d) ;

if(b>d) ;

if(c>d) ;

printf("%5.2f,%5.2f,%5.2f,%5.2f",a,b,c,d);

}冒泡法:

# include

main()

}for(i=0;i<4;i++) /* 分別輸出排完後的4個數 */

printf("%d ",a[i]);}

10樓:員施濯馨逸

將四個數存到bai數du組中,然後排序即zhi可。

排序dao後,再利用循版

環輸出。

**權:

#include

int main()

}for(i = 0; i < 4; i ++)printf("%d,",a[i]);}

11樓:戰殤弒魂

#include

#include

void main()

printf("the sorted numbers:\n");//列印出分類後的結果

for(i=1;i<=45;i++)

printf("%d ",a[i]);

system("pause");//螢幕停留在當前結果,以免螢幕一閃而過,無法看到執行結果}

12樓:浪_鷹

#include

main()

printf("您輸入的四個整數由小到大輸入為:\n")for(i=0;i<4;i++) //迴圈輸出printf("%d ",a[i]);

getchar(); //停止螢幕

getchar();

}你可以上機執行一下,結果是對的,有什麼地方不明白的再聯絡我,只要我會的一定告訴你的!!!

13樓:匿名使用者

maim()

for(i=1;i<5;i++)

for(j=i+1;j<5,j++)

printf("排序後\n");

for(i=1;i<5;i++)}

c語言 輸入4個整數,按要求從小到大的順序輸出 ,我寫的程式**有問題?

14樓:匿名使用者

親,哪有你這樣比較的。首先是輸入4個整數,您直接定義成float浮點型,這就不對。最好是把這些數裝入一個陣列內,再排序。

int main()

}for(count = 0; count < 4; count++)

return;}

15樓:

邏輯有漏洞。a>b、a>c、a>d成立時都有交換這沒錯,但某一項不滿足呢?比如a>c不滿足,那就是c<=a,可是後面再也沒有出現對a怎麼處理。

參與比較的數多於3個這樣就不好處理了,還是用陣列儲存,排序比較好。

16樓:黑乎乎

用迴圈結構比較,不要用這樣傻的方法,參考一下#include

int main()

}for(i=0;i<=3;i++)

printf("%d\t",a[i]);

return 0;}

17樓:常玉標

#include

void main()

if(a>c)

if(a>d)

if(b>c)

if(b>d)

if(c>d)

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

用c語言編寫一個程式,輸入4個整數,按從大到小順序輸出!

18樓:

冒泡法是好,不過要不用陣列的

其實只要能想出輸出最大和最小兩個的辦法!就有辦法自己想出四個排列的,最多複雜一點.

建議你呼叫子函式,利用冒泡法的思路

com(int a,int b)

}然後你就只要聯絡三次呼叫就可以了

也就是每兩個都按從大到小排列,整個就是重大到小

19樓:匿名使用者

program 程式名(input,output);

var a,b,c,d,t: real;

begin

write('input a, b,c=');

readln(a,b,c,d);

if a>b then

begin

t:=a; a:=b; b:=t

end;

if a>c then

begin

t:=a; a:=c; c:=t

end;

if a>d then

begin

t:=a; a:=d; d:=t

end;

if b>c then

begin

t:=b; b:=c; c:=t

end;

if b>d then

begin

t:=b; b:=d; d:=t

end;

if c>d then

begin

t:=c; c:=d; d:=t

end;

writeln('a,b,c,d:',a:6, b:6, c:6, d:6);

readln

end.

參考演算法自己編一個c語言的吧,很容易的^_^

20樓:匿名使用者

#include "stdio.h"

main()

for(i=0;i<=3;i++)

printf("%d\t",a[i]);}

21樓:瑀瑀獨行

同意樓上的氣泡排序法

這是標準演算法

22樓:匿名使用者

是標準演算法也是最爛的演算法,快速排序是共認目前最好的

c語言輸入整數按要求從小到大的順序輸出

親,哪有你這樣比較的。首先是輸入4個整數,您直接定義成float浮點型,這就不對。最好是把這些數裝入一個陣列內,再排序。int main for count 0 count 4 count return 邏輯有漏洞。a b a c a d成立時都有交換這沒錯,但某一項不滿足呢?比如a c不滿足,那就...

c語言由鍵盤輸入正整數,C語言!!!!!!!!!!!由鍵盤輸入一個正整數,判斷該數是否為平方數,是輸出Y,否則輸出N

思路 將該數開平方得到一個數 看是不是整數,如果是說明是平方數,否則內不是 如下 include include int main else return 0 希望可以幫到你,如有疑問歡迎追問 樓主來你好。很簡單 自 include include int main printf c n pow i...

c語言編寫函式要求輸入整數n,將陣列下標到n的數都移到陣列末尾

只錯了一句 include void fun int w,int p,int n int main i,n 3,p 10 p為陣列長度 fun a,p,n for i 0 i 10 i printf 3d a i 核心語句 新陣列 原陣列.slice n 1 concat 原陣列.slice 0,n...