Programacion C

1 Calcula la Moda,la Mediana de un Vector aleatorio

#include <stdio.h>
#include <stdlib.h>
// Definicion del numero de elementos maximos del vector
#define MAX 10
int main(int argc, char *argv[])
{
    
      srand(time(NULL));
      // Variables a utilizar por el programa
    int numeros[MAX];
    int contador=0;
    int auxiliar[MAX];
    int posicion=0;
    int numero=0;
    int contador2=0;
    int mayor=0;
    int posicionmayor=0;
    int bandera=0;
    float suma=0;
    int s;
    //s=0;
    // Solicitar los numeros para rellenar el vector
    for(contador=0;contador<MAX;contador++) {
        //printf("No. %d : ",contador+1);
        s=(1+rand()%(5+0));
        numeros[contador]=s;
       // scanf(" %d",&numeros[contador]);
    }
    // Visualizar los elementos introducidos en el vector
    printf("\nElementos del vector : ");
    for(contador=0;contador<MAX;contador++) {
        printf(" %d",numeros[contador]);
    }
    printf("\n");
    printf("\n");
    // Calcular la moda
    for(contador=0;contador<MAX;contador++) {
        auxiliar[contador]=0;
    }
    // Recorrer el vector comprobando las repeticiones de cada numero
    // y almacenando las mismas en el vector auxiliar segun la posicion
    // del numero
    for(contador=0;contador<MAX;contador++) {
        numero = numeros[contador];
        posicion = contador;
        for(contador2=contador;contador2<MAX;contador2++) {
            if(numeros[contador2]==numero) auxiliar[posicion]++;
        }
    }
    // Una vez establecidas las repeticiones de cada numero se ha de establcer
    // cual es la posicion del vector que tiene un numero de repeticiones mayor
    // ya que esta es la posicion que se corresponde con el numero que se repite
    // mas veces el vector ( MODA )
    // se establece en primer lugar el mayor como el primer elemento del vector
    mayor=auxiliar[0];
    posicionmayor = 0;
    for(contador=0;contador<MAX;contador++) {
        if(auxiliar[contador]>mayor) {
            posicionmayor=contador;
            mayor=auxiliar[contador];
        }
    }
    // Visualizar el elemento con mas frecuencia de aparicion
    printf("\nMODA : %d",numeros[posicionmayor]);
    // CALCULO DE LA MEDIANA
    // en primer lugar se realiza la ordenacoin del vector de numeros
    bandera=0;
    for(contador=MAX;contador>0 && bandera==0;contador--) {
        bandera=1;
        for(contador2=0;contador2<contador;contador2++) {
            if(numeros[contador2]>numeros[contador2+1]) {
                numero = numeros[contador2];
                numeros[contador2] = numeros[contador2+1];
                numeros[contador2+1]=numero;
                bandera=0;
            }
        }
    }
    // Visualizar los elementos introducidos en el vector
    printf("\nElementos del vector : ");
    for(contador=0;contador<MAX;contador++) {
        printf(" %d",numeros[contador]);
    }
    // Dependiendo de si el numero d elementos del vector es par o impar
    // la mediana ha de ser el punto central del mismo o los dos puntos centrales
    // del mismo.
    if(MAX%2!=0) {
        printf("\nEL valor de la mediana es : %d",numeros[MAX/2]);
    } else {
        printf("\nEL valor 1 de la mediana es : %d",numeros[MAX/2]);
        printf("\nEL valor 2 de la mediana es : %d",numeros[(MAX/2)-1]);
    }
    // Calcular la media www.aprendoencasa.es
    suma = 0;
    for(contador=0;contador<MAX;contador++) {
        suma+=numeros[contador];
    }
    printf("\nMEDIA : %.2f\n",suma/MAX);
  return 0;
}


No hay comentarios:

Publicar un comentario