C語言中qsort函數(shù)用法實例小結(jié)
本文實例匯總了C語言中qsort函數(shù)的常見用法,非常具有實用價值。分享給大家供大家參考。具體分析如下:
C語言中的qsort函數(shù)包含在<stdlib.h>的頭文件里,本文中排序都是采用的從小到大排序。
一、對int類型數(shù)組排序
int num[100]; int cmp ( const void *a , const void *b ) { return *(int *)a - *(int *)b; } qsort(num,100,sizeof(num[0]),cmp);
二、對char類型數(shù)組排序(同int類型)
char word[100]; int cmp( const void *a , const void *b ) { return *(char *)a - *(char *)b; } qsort(word,100,sizeof(word[0]),cmp);
三、對double類型數(shù)組排序(特別要注意)
double in[100]; int cmp( const void *a , const void *b ) { return *(double *)a > *(double *)b ? 1 : -1; } qsort(in,100,sizeof(in[0]),cmp);
四、對結(jié)構(gòu)體一級排序
struct In { double data; int other; }s[100]; int cmp( const void *a ,const void *b) { return (*(struct In *)a)->data > (*(struct In *)b)->data ? 1 : -1; } qsort(s,100,sizeof(s[0]),cmp);
五、對結(jié)構(gòu)體二級排序
struct In { int x; int y; }s[100]; //按照x從小到大排序,當(dāng)x相等時按照y從大到小排序 int cmp( const void *a , const void *b ) { struct In *c = (struct In *)a; struct In *d = (struct In *)b; if(c->x != d->x) return c->x - d->x; else return d->y - c->y; } qsort(s,100,sizeof(s[0]),cmp);
六、對字符串進行排序
struct In { int data; char str[100]; }s[100]; //按照結(jié)構(gòu)體中字符串str的字典順序排序 int cmp ( const void *a , const void *b ) { return strcmp( (*(struct In *)a)->str , (*(struct In *)b)->str ); } qsort(s,100,sizeof(s[0]),cmp);
相信本文所述實例對大家C程序設(shè)計的學(xué)習(xí)有一定的借鑒價值。
相關(guān)文章
用c++實現(xiàn)將文本每個單詞首字母轉(zhuǎn)換為大寫
本篇文章是對用c++實現(xiàn)將文本每個單詞首字母轉(zhuǎn)換為大寫的方法進行了詳細的分析介紹,需要的朋友參考下2013-05-05C語言fprintf()函數(shù)和fscanf()函數(shù)的具體使用
本文主要介紹了C語言fprintf()函數(shù)和fscanf()函數(shù)的具體使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11