😸
[C] qsort 関数
機能
配列を指定した順序でソートする関数[1]
使用例
1 3 4 5 7
と表示する
\n
は改行を表す エスケープシーケンス[2]
コード
int arr[] = {5, 1, 7, 4, 3};
qsort(arr, 5, sizeof(int), cmp);
for(int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
全文
#include <stdio.h>
#include <stdlib.h>
int cmp(const void *a, const void *b) {
return *(int*)a - *(int*)b;
}
void main() {
int arr[] = {5, 1, 7, 4, 3};
qsort(arr, 5, sizeof(int), cmp);
for(int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
}
実行結果
1 3 4 5 7
z a b c x
を文字でソートし表示する
コード
char arr[] = {'z', 'a', 'c', 'x', 'b'};
qsort(arr, 5, sizeof(char), cmp_char);
for(int i = 0; i < 5; i++) {
printf("%c ", arr[i]);
}
全文
#include <stdio.h>
#include <stdlib.h>
int cmp_char(const void *a, const void *b) {
return *(char*)a - *(char*)b;
}
void main() {
char arr[] = {'z', 'a', 'c', 'x', 'b'};
qsort(arr, 5, sizeof(char), cmp_char);
for(int i = 0; i < 5; i++) {
printf("%c ", arr[i]);
}
}
実行結果
a b c x z
Discussion