Introducción a la programación con c

Page 81

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

CC 2003, 2008 Andr´ es Marzal e Isabel Gracia

11

/* Lectura de edades */ personas = 0; do { printf ("Introduce edad de la persona %d (si es negativa, acabar): ", personas+1); scanf ("%d", &edad [personas]); personas++; } while (personas < MAX_PERSONAS && edad [personas-1] >= 0); personas--;

12 13 14 15 16 17 18 19 20

...

21 22

return 0;

23 24

}

Imagina que se han introducido edades de 10 personas. La variable personas apunta (conceptualmente) al final de la serie de valores que hemos de considerar para efectuar los c´alculos pertinentes: 0

edad

6

personas

10

MAX PERSONAS

20

1

2

3

4

5

6

18 30 18 19 19 31

7

1

8

9

10

11

12

13

14

15

27 66 -1 887 -55 0 391 0

16

17

18

19

-6 89 322 -2

Ya podemos calcular la edad media, pero con un cuidado especial por las posibles divisiones por cero que provocar´ıa que el usuario escribiera una edad negativa como edad de la primera persona (en cuyo caso personas valdr´ıa 0): edades 7.c 1 2

edades.c

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

3 4

#define MAX_PERSONAS 20

5 6 7 8 9 10

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

11 12 13 14 15 16 17 18 19

/* Lectura de edades */ personas = 0; do { printf ("Introduce edad de la persona %d (si es negativa, acabar): ", personas+1); scanf ("%d", &edad [personas]); personas++; } while (personas < MAX_PERSONAS && edad [personas-1] >= 0); personas--;

20 21 22 23 24 25 26

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

27 28 29 30 31 32

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

33

Introducci´ on a la Programaci´ on con C

75


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.