C說話中qsort函數用法實例小結。本站提示廣大學習愛好者:(C說話中qsort函數用法實例小結)文章只能為提供參考,不一定能成為您想要的結果。以下是C說話中qsort函數用法實例小結正文
本文實例匯總了C說話中qsort函數的罕見用法,異常具有適用價值。分享給年夜家供年夜家參考。詳細剖析以下:
C說話中的qsort函數包括在<stdlib.h>的頭文件裡,本文中排序都是采取的從小到年夜排序。
1、對int類型數組排序
int num[100]; int cmp ( const void *a , const void *b ) { return *(int *)a - *(int *)b; } qsort(num,100,sizeof(num[0]),cmp);
2、對char類型數組排序(同int類型)
char word[100]; int cmp( const void *a , const void *b ) { return *(char *)a - *(char *)b; } qsort(word,100,sizeof(word[0]),cmp);
3、對double類型數組排序(特殊要留意)
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);
4、對構造體一級排序
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);
5、對構造體二級排序
struct In { int x; int y; }s[100]; //依照x從小到年夜排序,當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);
6、對字符串停止排序
struct In { int data; char str[100]; }s[100]; //依照構造體中字符串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法式設計的進修有必定的自創價值。