```c #include #include #include int cmpint(int *p1, int *p2){ int suma_p1 = 0; int suma_p2 = 0; //printf("elementos p1: %d\n",*(const int **)p1/sizeof(**(const int **)p1)); for (int i = 0; i < 3; i++){ suma_p1 += p1[i]; } for (int i = 0; i < 3; i++){ suma_p2 += p2[i]; } printf("Suma p1: %d\n", suma_p1); printf("Suma p2: %d\n", suma_p2); if (suma_p1 < suma_p2) return 1; return 0; } static int cmpstringp(const void *p1, const void *p2) { // strcmp(*(const char **) p1, *(const char **) p2); // **(const int **)p1 = 1 // **(const int **)p2 = 20 return cmpint( *(int**)p1, *(int**)p2); } int main(int argc, char *argv[]) { int *num1 = malloc(sizeof(int)*3); int *num2 = malloc(sizeof(int)*3); int **numeros = malloc(sizeof(int*)*2); num1[0] = 999; num1[1] = 9; num1[2] = 10; num2[0] = 20; num2[1] = 4; num2[2] = 123; numeros[0] = num1; numeros[1] = num2; // char **argv // qsort(&argv[1], argc - 1, sizeof(char*), cmpstringp); qsort( &numeros[0], 2, sizeof(int*), cmpstringp ); printf("Imprimimos el array con la suma más grande\n"); for (int i = 0; i < 3; i++) { printf("%d ", numeros[0][i]); } exit(EXIT_SUCCESS); } ```