#include #include int compare(const void* value1, const void* value2) { return *(const double*)value1 - *(const double*)value2; } int main() { size_t size = 0; if ( scanf("%zu", &size) != 1 ) return 1; double* vector = (double*) malloc(size * sizeof(double)); for ( size_t counter = 0; counter < size; ++counter ) if ( scanf("%lg", &vector[counter]) != 1 ) return 2; int (*function_pointer)(const void*,const void*); function_pointer = compare; qsort(vector, size, sizeof(double), function_pointer); if ( size % 2 == 1 ) printf("\nmedian=%lg\n", vector[size / 2] ); else printf("\nmedian=%lg\n", (vector[size / 2] + vector[size / 2 - 1]) / 2.0 ); // Sin esto, generaria una fuga de memoria (memory leak) free(vector); vector = NULL; return 0; }