Dev - C++ - como sacar la moda de n elemntos ?
hola a todos tengo una duda muy grande el cual consiste es que ocupo sacar la moda de n elementos el cual la moda es el numero que se repite mas en la serie numerica,
un ejemplo 1 , 2 , 2 , 4 , 5 , 8 ,2 , 10 , 5 la moda ahy es el 2 pork es el k mas se repite. entonces quisiera hacer esto en c++ y que solo imprimiera el numero que se repite mas es el ("moda")... ojala me pudieran aiudar :) thanks
Te ayudare con un ejemplo. Sea m un vector de enteros de n elementos cuyos valores van desde 1 a 10: int m[ n ] = { 1 , 2 , 2 , 4 , 5 , 8 ,2 , 10 , 5,.....6 };
int rango;
int mas_grande;
int valor_moda;
int frecuencias[11] = {0}; /* iniciamos frecuencias a cero */
/* sólo consideraremos de frecuencias[1] a frecuencias[10], por convención */
/* necesitamos hallar la frecuencia de cada valor en el vector m */
for ( i = 0; i < n; i++ ) { /* recorremos el vector y vamos contando la frecuencia de cada valor */
frec[ m[i] ]++;
}
/* Hasta aqui ya tenemos las frecuencias de cada valor guardadas en frecuencias sólo nos falta hallar el valor que más se repite, es decir el valor frecuencia mas grande */
for ( rango = 1; rango <= 10; rango++ ) {
if ( frecuencia[rango] > mas_grande ) {
mas_grande = frecuencia[rango];
valor_moda = rango;
}
printf( "
El valor moda es %d", valor moda );
}Debes saber que la moda a veces no es unica ya que puede haber un empate este programa no detecta esto ultimo pero bastaria con agregar unas cuantas sentencas mas. Espero me haya dejado comprender Salu2
disculpa estaba leyendo tu programa pero que es frec??? eso no lo declaraste
yo tengo ese problema que tu dices; cuando hay mas de una moda el programa me imprime el ultimo numero que se repite mas en vez de todos los que son moda arreglos crear un archivo |