Calcular moda, mediana, media aritmética, media geométrica de n números en C

Iniciado por ERIK546, 27 Junio 2012, 18:41 PM

0 Miembros y 1 Visitante están viendo este tema.

DickGumshoe

Aquí te dejo la media geométrica:



d=1;
    for(i=0;i<n;i++){
                     d*=a[i];
    }
    mg = pow( d, (1.0/n) );
    printf("La media geometrica es: %f\n",mg);


Lo que le pasaba era que en la función pow, en el segundo parámetro (1.0/n), es decir, el exponente, siempre iba a ser un número decimal (salvo que n = 1).

Así, para que el programa sepa que el resultado de dicha operación (1/n) es decimal, lo indicamos poniendo 1.0

De lo contrario, te cogería la parte entera de dicha operación (que, salvo para n = 1, daría 0). De ahí que siempre elevara la variable d a 0, y por eso diera como resultado 1.

Saludos.

DickGumshoe

Para hacer la moda, podrías probar algo así:

Creas otro vector del mismo tamaño que a (por ejemplo, el vector se podría llamar moda).

En un bucle for anidado, comparas a[0] con el resto de elementos. Las veces que se haya repetido el número, la almacenas en moda[0]. Así con todos los elementos de a.

Al final, en otro bucle for, buscas qué elemento de moda es el mayor. Así, tendrás la posición del vector donde se sitúa el elemento que más veces se repite.

Saludos.

ERIK546

Cita de: DickGumshoe en 28 Junio 2012, 00:39 AM
Para hacer la moda, podrías probar algo así:

Creas otro vector del mismo tamaño que a (por ejemplo, el vector se podría llamar moda).

En un bucle for anidado, comparas a[0] con el resto de elementos. Las veces que se haya repetido el número, la almacenas en moda[0]. Así con todos los elementos de a.

Al final, en otro bucle for, buscas qué elemento de moda es el mayor. Así, tendrás la posición del vector donde se sitúa el elemento que más veces se repite.

Saludos.
Gracias ha funcionado la solución que me dices; me parece muy buena la idea que me dices para la moda; Intentaré hacerlo y lo subiré cuando este listo, gracias por todo.

EnriqueRodriguezM

Alguien soluciona la media armonica solo en el codigo con vectores da un valor que no es la armonica