Branch on Condition - Sorting Three Numbers
#include <stdio.h>
#include <stdlib.h>
int compare_int(const void *a, const void *b)
{
return *(int*)a - *(int*)b;
}
main()
{
int data[] = {4, 2, 3, 6, 3, 2, 1, 3, 20000*100000, -20000*100000};
int i;
qsort(data, 10, sizeof(int), compare_int);
for (i = 0; i < 10; i++) {
printf("%d ", data[i]);
}
printf("\n");
}
compare_intが間違ってるので修正して問題を解いた。
何故比較演算で済むところを問題を引き起こしやすい四則演算を採用したのか理解に苦しむ。
#include <stdio.h>
#include <stdlib.h>
int compare_int(const void *a, const void *b)
{
return *(int*)a > *(int*)b;
}
main()
{
int a[3];
scanf("%d %d %d\n",&a[0],&a[1],&a[2]);
qsort(a, 3, sizeof(int), compare_int);
printf("%d %d %d\n",a[0],a[1],a[2]);
}
最終更新:2016年03月19日 07:58