作廢?排序(浮動?*a,?int?n)
{
int?I,j,tmp
for(I = 0;?我& ltn-1;?i++)
for(j = 0;?j & ltn-I-1;?j++)
if(a[j]& gt;a[j+1])
{
tmp?=?a[j];
a[j]?=?a[j+1];
a[j+1]?=?tmp
}
}
作廢?主()
{
浮動?a[5];
int?我;
Printf("請輸入五個數字,用逗號分隔:");
scanf("%f,%f,%f,%f ",& ampa[0],& ampa[1],& ampa[2],& ampa[3],& ampa[4]);
sort(a,5);
printf(" sorted:");
for(I = 0;?我& lt5;?i++)
printf("%.2f?",a[I]);
printf(" \ n ");
}?
或者三個數字。
void排序(int *a,int *b,int *c)
{
int tmp
if(* a & gt;*b){
tmp = * b;
* b = * a;
* a = tmp
}
if(* a & gt;*c){
tmp = * c;
* c = * a;
* a = tmp
}
if(* b & gt;*c){
tmp = * c;
* c = * b;
* b = tmp
}
返回;
}
擴展數據:
C語言中沒有預置的排序函數。如果在C語言中調用sort函數,則是自定義函數,函數壹般用於排序。?
首先,您可以編寫自己的排序函數。
下面的函數是將整數數組從小到大排序。Void sort(int *a,int l)//a是數組地址,l是數組長度。
{
int i,j;
int v;//排序實體
for(I = 0;我& ltl-1;i ++)
for(j = I+1;j & ltl;j ++)
{
if(a[I]& gt;A[j])//如果前面的比後面的大,就換。
{
v = a[I];
a[I]= a[j];
a[j]= v;
}
}?
}
對於這樣的自定義排序函數,可以根據定義的規範調用。
第二,C語言有自己的qsort函數。
功能:使用快速排序例程進行排序。頭文件:stdlib.h
原型:
void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));?
參數:
1,要排序的數組的第壹個地址。
2.數組中要排序的元素數。
3、每個元素占用空間的大小4指向函數的指針,用來確定排序順序。這個函數必須自己寫比較函數,即使要排序的元素是int、float等C語言基本類型。?