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 如果...