qsort() の使い方

関数へのポインタの入門として


関数へのポインタの例を ここ に示します。

説明:

qsort() は C 言語の標準ライブラリ関数で、クイックソートを行います。 この関数は、どんなデータでもソートできるようにするために、

「2つのデータを比較する関数」

というものをユーザに定義させ、その関数へのポインタを引数として渡します。 詳しくは man qsort で解説が出ますが、わかりにくいと思うので各自で参考 書をしらべてみてください。


練習:

自分のホームディレクトリに src というディレクトリを作り、このプログラ ムを src にコピーして、各自データを変えたり増やしたりして実行せよ。

データの数を増やすとプログラムのあちこちに変更が及ぶので面倒である。 データの数を定数 NUM_DATA として宣言するように直せ。

注意: HPUX 標準の C では ANSI-C 準拠のプログラムは

   cc -Aa qsort_sample.c -o qsort_sample
のように -Aa オプションをつけてコンパイルする。また、GNU C という別の コンパイラもインストールされているので、こちらを使いたい場合は
   gcc qsort_sample.c -o qsort_sample
のように入力する。

課題:

このプログラムを改造して、
typedef struct {
  char *name;
  float score;
} DATA ;
のような構造体の配列に値を代入し、score の小さい順に表示するプログラム を作れ。
Takuya Nishimoto