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結(jié)構(gòu)體排序方法是什么?
qsort的最后一個(gè)參數(shù)是函數(shù)指針。通過此函數(shù)指針將自己編寫的比較函數(shù)傳遞給qsort。這樣,qsort就可以知道如何比較大小,然后制定排序標(biāo)準(zhǔn)。通過傳入不同的比較函數(shù),可以使用qsort對(duì)不同的數(shù)據(jù)類型進(jìn)行排序。例如,string、int、double和even結(jié)構(gòu)。這樣,排序邏輯就可以重用,而無需為所有數(shù)據(jù)類型提供qsort函數(shù)。同樣,bsearch函數(shù)也需要一個(gè)比較函數(shù)。原因是一樣的。