c語言qsort函數(shù)用法 C語言結(jié)構(gòu)體如何排序?
C語言結(jié)構(gòu)體如何排序?排序需要比較。結(jié)構(gòu)沒有現(xiàn)成的比較方法,必須人為地規(guī)定結(jié)構(gòu)的比較方法。您可以使用qsort函數(shù)進(jìn)行排序,該函數(shù)必須傳入比較函數(shù)。例如:intmycmp(constvoid*a,co
C語言結(jié)構(gòu)體如何排序?
排序需要比較。結(jié)構(gòu)沒有現(xiàn)成的比較方法,必須人為地規(guī)定結(jié)構(gòu)的比較方法。您可以使用qsort函數(shù)進(jìn)行排序,該函數(shù)必須傳入比較函數(shù)。例如:intmycmp(constvoid*a,constvoid*b){return(*(Information*)a->average>(*(Information*)b)->average?1:-1}
假設(shè)您的結(jié)構(gòu)定義是這樣的:
如果您使用qsort排序,您需要定義這樣的函數(shù):然后像這樣調(diào)用qsort:
~]#include<stdio。H>#包括<stdlib。H> int comp(const Void*a,const Void*b)//用于比較的函數(shù)。{return*(int*)a-*(int*)B}int main(){int a[10]={2,4,1,5,5,3,7,4,1,5}//無序數(shù)組。Int i qsort(a,10,sizeof(Int,COMP)//調(diào)用qsort sort for(i=0I<10i)//輸出排序數(shù)組{printf(%d”,a[i])}返回0}
在C和C中,排序函數(shù)的用法不同。C語言中沒有預(yù)設(shè)的排序函數(shù)。如果你想用C語言調(diào)用sort函數(shù),你需要定制一個(gè)排序函數(shù),或者使用C語言自己的qsort函數(shù),它的頭文件是stdlib。H。