Advertisement
Guest User

Moda,Media,Mediana,DesvTipica.

a guest
May 24th, 2015
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.24 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. #define MAX_PERSONAS 20
  5.  
  6. int main(void)
  7. {
  8.     int edad[MAX_PERSONAS], personas, i, j, aux, suma_edad;
  9.     float suma_desviacion, media, desviacion;
  10.     int moda, mediana;
  11.     int tmp;
  12.    
  13.     /* Lectura de edades */
  14.     personas=0;
  15.     do{
  16.         printf("Introduce edad %d (si es negativa, acabar): ", personas+1);
  17.         scanf("%d",&tmp);
  18.         if (tmp>=0)
  19.             edad[personas]=tmp;
  20.         else
  21.             break; 
  22.         personas++;
  23.     } while(personas<MAX_PERSONAS && edad[personas-1]>=0);
  24.    
  25.     if(personas>0){
  26.         /* Calculo de la media */
  27.         suma_edad=0;
  28.         for(i=0;i<personas;i++)
  29.             suma_edad+=edad[i];
  30.         media=suma_edad/(float)personas;   
  31.        
  32.         /* Calculo de la desviacion tipica */  
  33.         suma_desviacion=0.0;
  34.         for(i=0;i<personas;i++)
  35.             suma_desviacion+=(edad[i]-media)*(edad[i]-media);
  36.         desviacion=sqrt(suma_desviacion/personas);
  37.        
  38.         printf("Moda desordenada\n\n");
  39.        
  40.         /* Calculo de la moda */
  41.         for (int b=0;b<personas;b++)
  42.             printf("\t\t%d\n", edad[b]);
  43.            
  44.        
  45.         for(i=0;i<personas-1;i++) //Ordenacion mediante burbuja
  46.             for(j=0;j<personas-1;j++)
  47.                 if(edad[j]>edad[j+1]){
  48.                     aux=edad[j];
  49.                     edad[j]=edad[j+1];
  50.                     edad[j+1]=aux;
  51.                 }
  52.  
  53.         //Creacion de la lista que almacenara las modas
  54.         int modas[personas];
  55.         int frecuencia=0;
  56.         int frecuencia_moda=0;
  57.         int contador=0;
  58.        
  59.         for(int m=0;m<personas;m++)
  60.             modas[m]=0;
  61.            
  62.         for(i=0;i<personas;i++)
  63.             printf("\t%d\n",edad[i]);
  64.            
  65.         for(int n=0; n<personas-1;n++)         
  66.             if(edad[n]==edad[n+1]){
  67.                 frecuencia++;
  68.                 if(frecuencia>frecuencia_moda){
  69.                     frecuencia_moda=frecuencia;
  70.                     for(int m=0;m<personas;m++){
  71.                             modas[m]=0;
  72.                     }
  73.                     contador=0;
  74.                     modas[contador]=edad[n];   
  75.                 }
  76.                 else if(frecuencia==frecuencia_moda){
  77.                     contador++;
  78.                     modas[contador]=edad[n];
  79.                 }
  80.             }
  81.         /*Calculo de la mediana */
  82.         if(personas%2==0)
  83.             mediana=edad[personas/2];
  84.         else{
  85.             mediana=(edad[personas/2]+edad[(personas/2)-1]);
  86.         }
  87.                    
  88.         /*Impresion de resultado*/
  89.         printf("Edad meddia  : %f\n", media);
  90.         printf("Desv. tipica : %f\n", desviacion);
  91.         printf("Mediana      : %d\n", mediana);
  92.         printf("Moda: \n");
  93.         for(int m=0;m<personas;m++)
  94.             printf("\t%d\n", edad[m]); 
  95.     }
  96.     else
  97.         printf("No se introdujo dato alguno.\n");
  98.    
  99.     return 0;    
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement