qsortを使ってqsortを使って数値配列のソートを行うサンプルソースおよび実行結果を以下に記します。
以下のサンプルソースにより数値の配列の値をソートすることができます。
qsort_int.c (改行コードLF)
#include <stdio.h>
#include <stdlib.h>
int int_compar(const void *a, const void *b)
{
if (*(int*)a == *(int*)b) { return 0; }
if (*(int*)a < *(int*)b) { return -1; }
return 1;
}
int main(void)
{
int i;
int data[5] = {100,20,10,200,5};
printf("===== BEFORE =====\n");
for(i=0; i<5; i++) {
printf("%d\n", data[i]);
}
for(i=0; i<5; i++) {
qsort((void*)data, 5, sizeof(int), int_compar);
}
printf("===== AFTER =====\n");
for(i=0; i<5; i++) {
printf("%d\n", data[i]);
}
return 0;
}
コンパイルし実行した結果を以下に記します。 $ gcc qsort_int.c -o qsort_int sakura@mini:~/c$ ./qsort_int
===== BEFORE ===== 100 20 10 200 5 ===== AFTER ===== 5 10 20 100 200
以上、数値の配列をqsort関数で行う方法でした。