Foros del Web » Programación para mayores de 30 ;) » C/C++ »

moda de un arreglo

Estas en el tema de moda de un arreglo en el foro de C/C++ en Foros del Web. el siguiente codigo: Código: int a[9]={2,3,1,2,4,1,5,1,2}; int max=0,repite,masrep; for(int i=0;i<9;i++){ repite=0; for(int j=0;j<9;j++){ if(a[i]==a[j]){ repite++; } } if(repite>max){ masrep=a[i]; max=repite; } } cout<<"el elemnto que ...
  #1 (permalink)  
Antiguo 14/04/2015, 20:25
 
Fecha de Ingreso: abril-2015
Mensajes: 8
Antigüedad: 9 años
Puntos: 0
moda de un arreglo

el siguiente codigo:
Código:
int a[9]={2,3,1,2,4,1,5,1,2};
int max=0,repite,masrep;
for(int i=0;i<9;i++){
repite=0;
for(int j=0;j<9;j++){
if(a[i]==a[j]){
repite++;
}
}
if(repite>max){
masrep=a[i];
max=repite;
}
}
cout<<"el elemnto que mas se repite es "<<masrep<<"\n";
cout<<"se repite "<<max<<" veces";
es valido para un arreglo con solo una moda....pero falla cuando el arreglo tiene mas de una moda como en el ejemplo........
como haría para que se indique todas las modas que se forman en el arreglo sgte
a[9]={2,3,1,2,4,1,5,1,2}
  #2 (permalink)  
Antiguo 15/04/2015, 12:14
 
Fecha de Ingreso: febrero-2015
Ubicación: France
Mensajes: 12
Antigüedad: 9 años, 2 meses
Puntos: 1
Respuesta: moda de un arreglo

Hola,

Podria utilizar un segundo arreglo que cabe los mas gran modo.

Y por ejemplo hacer un algoritmo aproximadamente como asi :

Poner todas las valores del segundo arreglo a 0.
Por cada elemento del primero arreglo :
Calcular el modo,

Si es el mas grand modo, poner todas las valores del segundo arreglo a cero.

Si no, y si no hay elemento del segundo arreglo que se refiere a un elemento del primero arreglo que tiene la misma valor, poner el modo del elemento leido en el sugundo arreglo a la misma posicion

Por ejemplo por

2 3 1 2 4 1 5 1 2

el segundo arreglo daria:

3 0 0 0 0 0 0 0 0 (cuando "2" es examinado)

Y despues :
3 0 3 0 0 0 0 0 0 (cuando "1" es examinado)

Al fin no queda mas que leir cada valor del primero arreglo donde el indice del segundo arreglo es diferente de cero.

Espero que no he sido demasiado confuso :/

Etiquetas: arreglo, int, moda
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:38.