當前位置:編程學習大全網 - 編程語言 - 有沒有排序函數編程?

有沒有排序函數編程?

# include & ltstdio.h & gt

作廢?排序(浮動?*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語言基本類型。?

  • 上一篇:數字信息學到底是什麽?
  • 下一篇:影視廣告動態腳本怎麽寫?廣告分鏡頭腳本
  • copyright 2024編程學習大全網