輸入整數,要求按由大到小的順序輸出

時間 2021-08-11 18:00:45

1樓:聽不清啊

因為你輸出的順序是a,b,c,d,而比較交換的策略是,如果前面的值小於後面的值就交換兩個變數的值(前面變數的值大則不交換),所以就是大的在前,小的在後了。

並沒有從小到大啊?

2樓:

你可以利用 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 的位置換一換就行了。

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

3樓:小心_不在犯錯

#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;}

4樓:黑白say晚安

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

重複地走訪過要排序的元

素列,依次專

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

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

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

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

5樓:加百列

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

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

2、輸入函式**如下

dao:

3、排序函式**如下:

4、輸出函式**如下:

5、執行結果:

6樓:圖圖的大耳朵鴨

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

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

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

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

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

7樓:

最愚蠢的方法:

# 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]);}

8樓:員施濯馨逸

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

排序dao後,再利用循版

環輸出。

**權:

#include

int main()

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

9樓:戰殤弒魂

#include

#include

void main()

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

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

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

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

10樓:浪_鷹

#include

main()

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

getchar(); //停止螢幕

getchar();

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

11樓:匿名使用者

maim()

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

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

printf("排序後\n");

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

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

12樓:

你可以利用 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 的位置換一換就行了。

13樓:長鯨高淑穆

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;}

14樓:仝秀花來緞

用冒跑法寫:

main()

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

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

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

15樓:龍車花卉

#include "stdafx.h"

void mysort(int* pdata,int count)

用選擇法對整數按由大到小的順序排序

選擇法的原理是將每一個元素與他後面的元素分別比較,如果有比他大的,則交換,所以有2重迴圈,第一重是參加比較的元素,第二重是參加比較的元素分別與後面 這個記住,是他後面的元素,關鍵是後面二字 的元素分別比較 void sort int x,int n 交換 這樣就可以理解了,假設陣列有n個元素,那麼當...

c語言輸入整數將這數按絕對值由大到小排

int a 10 i,j,t for i 0 i 10 i scanf d a i for i 0 i 10 i for j i j 10 j if a j a i a j a i a j a i a j a i for i 0 i 10 i printf 4d a i 主要是那個if語句,我都搞暈...

用指標實現 由鍵盤輸入整數,將他們按由小到大的順序排列

問明 include void sort int s,int n 定義排序函式int main int a 10 p printf please enter 10 nunmbers 輸入10個整數 for p a pprintf original number for p a pprintf n s...