Page 76

2.1 Vectores est´aticos

edades 1.c 1 2

edades.c

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

3 4

#define PERSONAS 15

5 6 7 8 9

int main(void) { int edad [PERSONAS], i, suma_edad ; float suma_desviacion, media, desviacion ;

10

/* 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]); }

11 12 13 14 15 16

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

17 18 19 20 21 22

/* 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 );

23 24 25 26 27 28

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

29 30 31 32

return 0;

33 34

}

El c´ alculo de la moda (la edad m´as frecuente) resulta m´as problem´atica. ¿C´omo abordar el c´alculo? Vamos a presentar dos versiones diferentes. Empezamos por una que consume demasiada memoria. Dado que trabajamos con edades, podemos asumir que ninguna edad iguala o supera los 150 a˜ nos. Podemos crear un vector con 150 contadores, uno para cada posible edad: edades 2.c 1 2

edades.c

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

3 4 5

#define PERSONAS 15 #define MAX_EDAD 150

6 7 8 9 10 11

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

12 13 14 15 16 17

/* 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]); }

18 19 20 21 22

70

/* C´ alculo de la media */ suma_edad = 0; for (i=0; i<PERSONAS; i++) suma_edad += edad [i]; Introducci´ on a la Programaci´ on con C

Profile for esLibre.com

Introducción a la programación con c  

Introducción a la programación con c  

Advertisement