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

Moda y mediana en C++

Estas en el tema de Moda y mediana en C++ en el foro de C/C++ en Foros del Web. HOla, alguno de ustedes tiene el programa en C++ que calcule la moda y la mediana de un arreglo de n elementos?. SI alguien tiene ...
  #1 (permalink)  
Antiguo 22/05/2011, 12:22
 
Fecha de Ingreso: enero-2010
Ubicación: Colombia
Mensajes: 238
Antigüedad: 14 años, 9 meses
Puntos: 2
Busqueda Moda y mediana en C++

HOla, alguno de ustedes tiene el programa en C++ que calcule la moda y la mediana de un arreglo de n elementos?. SI alguien tiene los programitas funcionando les agradeceria, de verdad los necesito.

Estoy tratando de hacer el de la moda pero no me da el resultado. Miren mi codigo:


#include <conio.h>
#include <stdio.h>
#include <stdlib.h>

void main()
{
int array[5],i,rango,mas_grande,valor_moda,frecu;
int frec[5]={0};
clrscr ();

printf ("Digite los valores del arreglo:\n\n");
for (i=0;i<5;i++){
scanf ("%d",&array[i]);
}
for (i=0;i<5;i++){
frec[array[i]]++;
}

for (rango=1;rango<=5;rango++)
{
if (frec[rango]>mas_grande){
mas_grande=frec[rango];
valor_moda=rango;
}

}
printf ("El valor moda es %d",valor_moda);


getch ();
}
  #2 (permalink)  
Antiguo 22/05/2011, 14:15
 
Fecha de Ingreso: enero-2006
Mensajes: 76
Antigüedad: 18 años, 10 meses
Puntos: 1
Respuesta: Moda y mediana en C++

Hola, sólo he inicializado la variable mas_grande a cero, ya que la comparabas sin asignarle antes un valor, y probablemente como es un entero, pues el compilador le asignaba basura, en este caso concreto, un número muy grand e y por lo tanto nunca seria menor que el rango.

aqui el codigo que si que me funciona, solo el de moda, he cambiado alguna cosa a c++ ya que me resulta mas facil, pero eso es lo de menos.

#include <conio.h>
#include <iostream>

using namespace std;
int main()
{
int array[5],i,rango,mas_grande=0,valor_moda;
int frec[5]={0};

cout << "Digite los valores del arreglo:\n"<<endl;

for (i=0;i<5;i++){
cin >> array[i];
}

for (i=0;i<5;i++){
frec[array[i]]++;
}

for (rango=1;rango<=5;rango++)
{
if (frec[rango]>mas_grande){
mas_grande=frec[rango];
valor_moda=rango;
}

}
cout << "El valor moda es " << valor_moda<<endl;

getch ();
}
  #3 (permalink)  
Antiguo 22/05/2011, 14:16
 
Fecha de Ingreso: enero-2006
Mensajes: 76
Antigüedad: 18 años, 10 meses
Puntos: 1
Respuesta: Moda y mediana en C++

ha, se me olvidaba, he borrado la variable frecu, ya que me daba warning por no usarla.

si no se adelantan te miro lo de la mediana.
  #4 (permalink)  
Antiguo 22/05/2011, 15:29
 
Fecha de Ingreso: enero-2006
Mensajes: 76
Antigüedad: 18 años, 10 meses
Puntos: 1
Respuesta: Moda y mediana en C++

este otro codigo creo que lo hace mejor (no es mio, es encontrado en google)
tiene el defecto que si hay dos modas, te dá como tal, la última.

#include<iostream>
#include<conio.h>

using namespace std;
int main(){
int num[10],b=0,cont=0,numero,val=0;

cin>>val;
for(int i=0;i<val;i++){
cout<<"numero";
cin>>num[i];
}
for(int a=0;a<val;a++){
cont=0;
for(b=0;b<val;b++){
if(num[a]==num[b])
{cont++;
}
if(cont>=2){
numero=num[a];
}
}
}
cout<<"la moda es = "<<numero;

return 0;
}
  #5 (permalink)  
Antiguo 22/05/2011, 17:04
 
Fecha de Ingreso: enero-2010
Ubicación: Colombia
Mensajes: 238
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Moda y mediana en C++

muchachos muchas gracias, ambos funcionan a la perfeccion.

Etiquetas: 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:10.