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

2021-08-10 04:06:23 字數 4097 閱讀 3574

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)

輸入整數,按從小到大的順序輸出(用指標處理)

你這樣編寫有錯,你的在比較的時候你都認為p1指向a,p2指向b,p3指向c,但是其實如果指標交換其值以後就不是這麼指向了,所以結果出錯。但是就是你這樣不錯,你也最好不要這麼寫,你在將變數a,b,c的值賦給指標p1,p2,p3指向的值以後最好不要在利用變數a,b,c。不然程式某些稍微修改下,其它地方也...

用氣泡排序法對輸入的整數按由小到大的順序進行排序,要求排序用名為sort的子函式完成,在主函式

用氣泡排序法對輸入的十個整數按由小到大的順序進行排序,要求排序用一個名為sort的子函式完成,在主函式中呼叫它完成排序,用指標實現引數的傳遞,最後輸出排序結果.c語言題目 用冒泡法對任意輸入的10個整數由小到大的順序排序 1 新建一個工程和.c檔案。2 定義變數型別。3 用一個for語句遍歷整個陣列...

把1到9按從大到小的順序排列可用或

把1到9按從大到小的順序排列,可用 或 使其結果等於90 9 8 76 6 5 4 3 2 1 90 自己問自己自己做知道沒 9 8 76 5 4 3 2 1 90 1至9按從大到小的順序排列,添上 使計算的結果等於90 回答您好,很高興為您解答!只能這樣9 8 7 6 54 3 2 1 90 如果...