ソート(データを並び替える)

C

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

■戻り値:
なし

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です