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

Calcular la moda

Estas en el tema de Calcular la moda en el foro de C/C++ en Foros del Web. Como todos sabemos la moda es un termino que se utiliza en Estadística para saber cual es el numero que mas se repite. Mi programa ...
  #1 (permalink)  
Antiguo 21/03/2013, 21:00
 
Fecha de Ingreso: marzo-2013
Mensajes: 1
Antigüedad: 11 años, 7 meses
Puntos: 0
Pregunta Calcular la moda

Como todos sabemos la moda es un termino que se utiliza en Estadística para saber cual es el numero que mas se repite.
Mi programa ordena números aleatorios y arroja la media la mediana y la moda y al estarlo corriendo me di cuenta que si hay mas de un número que se repite mas, entonces imprime el ultimo que se repitió en vez de los 2 o 3 que se repitieron aquí esta el código:
Código:
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
void main (void)
{
 clrscr();
 int arreglo[10],f[10]={0},fg[10]={0} ,x,auxm=0,mod,c=0;
 float Prom=0;
 randomize();
 cout<<"moda mediana media"<<endl;
 for (int i=0;i<10;i++)
 {
  arreglo[i]=random(10)+1;
  cout<<arreglo[i]<<" ";
 }
 getch();
 for(int j=0;j<10;j++)
  {
   for(int k=0;k<10;k++)
   {
    if(arreglo[j]>arreglo[k])
    {
     x=arreglo[k];
     arreglo[k]=arreglo[j];
     arreglo[j]=x;
    }
   }
  }
 cout<<"\n";
 for(int l=9;l>=0;l--)
 {
  cout<<arreglo[l]<<" ";
  f[arreglo[l]]++;

  for(int m=9; m>=0;m--)
  {
   if (f[m]>auxm)
   {
    auxm=f[m];
    mod=m;
    fg[c]=mod;
    c++;
   }

  }
 }
 for(int b=9;b>=0;b--)
 {
 Prom=Prom+arreglo[b];

 }
 Prom=Prom/10;
 cout<<"\n\20 Media: "<<Prom;
 cout<<"\n\20 Mediana: "<<arreglo[5]<<" "<<arreglo[4];
 cout<<"\n\20 Moda: "<<mod<<" ";
 /*for (int a=9;a>=0;a--)
 {
  if(fg[a]==f[a])
  {
   cout<<fg[a]<<" ";
  }
 } */

 getch();
}
mi pregunta es como puedo hacer la comparación de la s posiciones del arreglo para que en caso de que el programa arroje mas de una moda este imprima todas las modas y no solo una.

Etiquetas: arreglos, 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 11:17.