Calcula la moda en C

elsavv
26 de Noviembre del 2009
dados 10 numeros, entre 1 y 5, hallar su moda (el numero que mas veces se repite). En caso de haber más de una moda, la moda final es la media aritmética de todas ellas.
solo he sabido hacer esto.... y no esta bien, tengo que resolverlo con un array, haber si me podeís ayudar!!

#include<stdio.h>
#include<string.h>

main()
{
int numero[10]={0,0,0,0,0,0,0,0,0,0},i=0;

do
{
i++;
printf("Introduce un numero entre 1 y 5...");
scanf ("%i", &numero[i]);


switch (numero[i])
{
case 1:
numero[0]++;
break;

case 2:
numero[1]=numero[1]+1;
printf ("%i",numero[1]);
break;

case 3:
numero[i]=numero[2]+1;
break;

case 4:
numero[i]=numero[3]+1;
break;

case 5:
numero[i]=numero[4]+1;
break;
}

}while (numero[i]>=1 && numero[i]<=5 && i<10);
getch();
}

Slash69
26 de Noviembre del 2009
/*No lo e probado, pero e sacado esta conclusion, faltaria añadir lo de que si la moda se repite sacar la media*/

#include<stdio.h>

int main(){
int vector[5];
int i;
int numero;
int moda;

for(i=1;i<=10;i++){

do{
printf("Introduce un numero entre 1 y 5: ");
scanf("%d",&num);

vector[num]=vector[num]+1;

}while((num<1)&& (num>5));
}

for(i=0;i<=5;i++){
if(vector[i]>moda){
moda=vector[i];
}
}
}