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法式設計的進修有必定的自創價值。