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