// Error: el cast calla al compilador, pero el comparador sigue sin tener la forma pedida.
#include <stdio.h>
#include <stdlib.h>

typedef int (*Compare)(const void *, const void *);

int compare_ints(const int *a, const int *b) {
    return (*a > *b) - (*a < *b);
}

int main(void) {
    int grades[3] = {14, 9, 20};
    qsort(grades, 3, sizeof(grades[0]), (Compare) compare_ints);
    printf("%d %d %d\n", grades[0], grades[1], grades[2]);
    return 0;
}
