配列内の数値や文字列を並びかえるには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 * ); ■戻り値: なし