C言語におけるqsort関数の使用例のまとめ
2014 ワード
この例では,C言語におけるqsort関数の一般的な使い方をまとめ,非常に実用的である.皆さんの参考にしてください.具体的な分析は以下の通りである.
C言語のqsort関数はヘッダファイルに含まれており,本稿ではソートは小さいものから大きいものまで用いられる.
一、intタイプ配列の並べ替え
二、charタイプ配列の並べ替え(intタイプと同じ)
三、doubleタイプ配列のソート(特に注意)
四、構造体の一級並べ替え
五、構造体の二次並べ替え
六、文字列を並べ替える
本文の述べた実例は皆さんのCプログラム設計の学習に対して一定の参考価値があると信じています.
C言語のqsort関数はヘッダファイルに含まれており,本稿ではソートは小さいものから大きいものまで用いられる.
一、intタイプ配列の並べ替え
int num[100];
int cmp ( const void *a , const void *b )
{
return *(int *)a - *(int *)b;
}
qsort(num,100,sizeof(num[0]),cmp);
二、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);
三、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);
四、構造体の一級並べ替え
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);
五、構造体の二次並べ替え
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);
六、文字列を並べ替える
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プログラム設計の学習に対して一定の参考価値があると信じています.