Escriba un programa que lea un arreglo de n números y realice las siguientes operaciones:
• Imprimir la media
• Imprima la mediana
• Imprima la moda
• Imprima la varianza
Solo me falta la moda....como hago?...ayuda!...grax:


| |||
moda en un arreglo..ayuda! Necesito hacer esto... Escriba un programa que lea un arreglo de n números y realice las siguientes operaciones: • Imprimir la media • Imprima la mediana • Imprima la moda • Imprima la varianza Solo me falta la moda....como hago?...ayuda!...grax: ![]() ![]() |
| |||
Respuesta: moda en un arreglo..ayuda! Hola amigo programador Aca te mando mi manera de encontrar la moda un Arreglo Unidimecional. La idea es contar las repeticiones de cada numero y obtener el mayor numero de repeticiones de un numero y ver si es unico, y si lo es tiene moda y si no lo es entonces no tiene moda, mejor chequea el codigo.
Código:
#include <conio.h> #include <stdio.h> #include <stdlib.h> #define Max 40 void leerR(int Ar[Max], int *n); void mostrarR(int Ar[Max], int n); void modaR(int Ar[Max], int n); int main(){ int A[Max],nc; leerR(A,&nc); mostrarR(A,nc); modaR(A,nc); system("pause"); return 0; } void leerR(int Ar[Max], int *n){ int i,val; printf("\n Ingrese el tamaño: "); scanf("%d",n); printf("\n Leer:\n"); for(i=0;i<*n;i=i+1){ printf(" a[%d]= ",i); scanf("%d",&val); Ar[i]=val; } } void mostrarR(int Ar[Max], int n){ int i; printf("\n"); for(i=0;i<n;i=i+1){ printf(" %d",Ar[i]); } printf("\n"); } void modaR(int Ar[Max], int n){ int i,j,k,c,pos,aux,Aux[Max],Cnt[Max],mayor=0; for(i=0;i<n;i=i+1){ Aux[i]=Ar[i]; } for(i=0;i<n;i=i+1){ c=1; for(j=i+1;j<n;j=j+1){ if(Aux[i]==Aux[j]){//compara el numero con los demas c=c+1; for(k=j;k<n-1;k=k+1){//elimina el repetido aux=Aux[k]; Aux[k]=Aux[k+1]; Aux[k+1]=aux; } n=n-1; j=j-1; } } Cnt[i]=c; if(mayor<c){ mayor=c;//se le asigna el mayor valor repeticiones } } c=0; for(i=0;i<n;i=i+1){//busca si el valor repetido es unico if(Cnt[i]==mayor){ pos=i; c=c+1; } } if(c==1){ printf("\n La moda es: %d\n",Ar[pos]); }else{ printf("\n No tiene moda\n"); } mostrarR(Aux,n);//muestra el arreglo sin repeticiones mostrarR(Cnt,n);//muestra la cantidad de repiticiones printf("\n"); } |