Added `deporte' structure.
[final_edu.git] / final.c
blobd4d54046253c08b83e97d1c0e84c8a7f5947cab6
1 #include <stdio.h>
2 #include <stdlib.h>
4 typedef struct _jugador jugador;
5 struct
6 _jugador
8 char nombre[128];
9 int anotaciones;
12 typedef struct _deporte deporte;
13 struct
14 _deporte
16 char nombre[128];
17 int victorias;
18 int derrotas;
19 int anotaciones_favor;
20 int anotaciones_contra;
21 jugador estrella;
23 /*
24 * 0 = futbol
25 * 1 = basket
27 int num_deporte;
28 void *tipo_deporte;
31 typedef struct _futbol futbol;
32 struct
33 _futbol
36 * Here goes the distinct fields
40 typedef struct _basket basket;
41 struct
42 _basket
45 * Here goes the distinct fields
47 int triples;
50 int
51 get_futbol_equipo(deporte *equipo)
53 printf("[Nombre equipo],[victorias],[derrotas],[goles a favor]"
54 ",[goles en contra] : ");
55 scanf("%s,%d,%d,%d,%d"
56 , equipo->nombre
57 , &equipo->victorias
58 , &equipo->derrotas
59 , &equipo->anotaciones_favor
60 , &equipo->anotaciones_contra
62 printf("[Nombre jugador estrella] : ");
63 scanf("%s"
64 , equipo->estrella.nombre
67 return 1;
70 int
71 get_basket_equipo(deporte *equipo)
73 printf("[Nombre equipo],[victorias],[derrotas],[anotaciones a favor]"
74 ",[anotaciones en contra] : ");
75 scanf("%s,%d,%d,%d,%d"
76 , equipo->nombre
77 , &equipo->victorias
78 , &equipo->derrotas
79 , &equipo->anotaciones_favor
80 , &equipo->anotaciones_contra
82 printf("[Nombre jugador estrella] : ");
83 scanf("%s"
84 , equipo->estrella.nombre
87 return 1;
90 int
91 get(deporte **equipos)
93 while (*equipos)
95 switch ((*equipos)->num_deporte)
97 case 0:
98 get_futbol_equipo(*equipos);
99 break;
100 case 1:
101 get_basket_equipo(*equipos);
102 break;
104 equipos++;
107 return 1;
110 deporte
111 get_basket_win(deporte **equipos)
113 deporte winner;
114 winner.victorias=0;
116 while ( *equipos )
117 if( (*equipos)->victorias > winner.victorias)
118 winner=**equipos,equipos++;
120 return winner;
125 main()
127 int i=0;
128 int LIM=0;
130 printf("Numero de equipos futbol : ");
131 scanf("%d", &LIM);
132 deporte **equipos_futbol = malloc(sizeof(void *)*(LIM+1));
135 * Allocate memory
137 for(i=0;i<LIM;i++)
138 equipos_futbol[i] = malloc(sizeof(deporte))
139 , equipos_futbol[i]->num_deporte = 0
140 , equipos_futbol[i]->tipo_deporte = malloc(sizeof(futbol));
141 equipos_futbol[LIM] = NULL;
143 printf("Numero de equipos basket : ");
144 scanf("%d", &LIM);
147 * Allocate memory
149 deporte **equipos_basket = malloc(sizeof(void *)*(LIM+1));
150 for(i=0;i<LIM;i++)
151 equipos_basket[i] = malloc(sizeof(deporte))
152 , equipos_basket[i]->num_deporte = 1
153 , equipos_basket[i]->tipo_deporte = malloc(sizeof(basket));
154 equipos_basket[LIM] = NULL;
156 get(equipos_futbol);
158 get(equipos_basket);
160 get_basket_win(equipos_basket);
161 return 1;