Page 77

CC 2003, 2008 Andr´ es Marzal e Isabel Gracia

2 Estructuras de datos en C: vectores est´aticos y registros

media = suma_edad / (float) PERSONAS;

23 24

/* C´ alculo de la desviacion t´ıpica */ suma_desviacion = 0.0; for (i=0; i<PERSONAS; i++) suma_desviacion += (edad [i] - media) * (edad [i] - media); desviacion = sqrt( suma_desviacion / PERSONAS );

25 26 27 28 29 30

/* C´ alculo de la moda */ for (i=0; i<MAX_EDAD; i++) // Inicializaci´ on de los contadores. contador [i] = 0; for (i=0; i<PERSONAS; i++) contador [edad [i]]++; // Incrementamos el contador asociado a edad [i]. moda = -1; frecuencia = 0; for (i=0; i<MAX_EDAD; i++) // B´ usqueda de la moda (edad con mayor valor del contador). if (contador [i] > frecuencia) { frecuencia = contador [i]; moda = i; }

31 32 33 34 35 36 37 38 39 40 41 42 43

/* Impresi´ on de resultados */ printf ("Edad media : %f\n", media); printf ("Desv. t´ ıpica: %f\n", desviacion); printf ("Moda : %d\n", moda);

44 45 46 47 48

return 0;

49 50

}

Esta soluci´ on consume un vector de 150 elementos enteros cuando no es estrictamente necesario. Otra posibilidad pasa por ordenar el vector de edades y contar la longitud de cada secuencia de edades iguales. La edad cuya secuencia sea m´as larga es la moda: edades 3.c 1 2

edades.c

#include <stdio.h> #include <math.h>

3 4

#define PERSONAS 15

5 6 7 8 9 10

int main(void) { int edad [PERSONAS], i, j, aux , suma_edad ; float suma_desviacion, media, desviacion; int moda, frecuencia, frecuencia_moda ;

11 12 13 14 15 16

/* Lectura de edades */ for (i=0; i<PERSONAS; i++) { printf ("Por favor, introduce edad de la persona n´ umero %d: ", i+1); scanf ("%d", &edad [i]); }

17 18 19 20 21 22

/* C´ alculo de la media */ suma_edad = 0; for (i=0; i<PERSONAS; i++) suma_edad += edad [i]; media = suma_edad / (float) PERSONAS;

23 24 25 26 27 28

/* C´ alculo de la desviacion t´ıpica */ suma_desviacion = 0.0; for (i=0; i<PERSONAS; i++) suma_desviacion += (edad [i] - media) * (edad [i] - media); desviacion = sqrt( suma_desviacion / PERSONAS );

29 30

/* C´ alculo de la moda */

Introducci´ on a la Programaci´ on con C

71

Profile for esLibre.com

Introducción a la programación con c  

Introducción a la programación con c  

Advertisement