配列内の数値や文字列を並びかえるにはqsort()関数を使います。
参考例を実行してみましたが、動作せず・・・。
#include <stdio.h>
#include <stdlib.h>
int compare(const void *a, const void*b)
{
if (*a > *b) {
return 1;
} else if(*a < *b) {
return -1;
} else if(*a == *b) {
return 0;
}
}
int main(void)
{
int num[] = {4, 6, 5};
qsort(num, sizeof(int), compare);
printf("%d\n", num);
return 0;
}
エラーメッセージは次のように出ました。
関数呼び出しに指定されているパラメータ数が少ないです。 呼び出している関数の引数の数を再確認してください。
「qsort(num, sizeof(int), compare);」この行でエラーが出ていることがわかっていますので、C言語ライブラリのマニュアルを検索してみると、次のように書かれています。
#include <stdlib.h>
void qsort( void * data , size_t data_cnt
, size_t data_size
, int( * func )( const void * , const void * );
■戻り値:
なし