| arrays/qsort-application.c - Anvendelse af qsort til sortering af et heltals array. | Lektion 9 - slide 19 : 30 Program 1 |
#include <stdio.h>
#include <stdlib.h>
void prn_array(char* s, const int a[], int n);
int element_compare(const void *ip1, const void *ip2);
int main(void){
int a[] = {7, 3, 66, 3, -5, 22, -77, 2};
int n;
n = sizeof(a) / sizeof(int); /* Notice how the size of a is found */
prn_array("Before", a, n);
qsort(a, n, sizeof(int), element_compare);
prn_array(" After", a, n);
putchar('\n');
return 0;
}
int element_compare(const void *ip1, const void *ip2){
int result;
int *ipi1 = (int *)ip1, /* Cast parameters to pointers to int */
*ipi2 = (int *) ip2;
if (*ipi1 < *ipi2)
result = -1;
else if (*ipi1 > *ipi2)
result = 1;
else
result = 0;
return result;
}
void prn_array(char* s , const int a[] , int n){
int i;
printf("\n %s sorting:", s);
for (i = 0; i < n; ++i)
printf("%5d", a[i]);
putchar('\n');
}