/* 060208-3.c * 20 min */ #include <stdio.h> void partida (void); /* Respuesta 3.a) */ int main (void) { int c; do { partida (); printf ("Otra partida (s/n): "); fflush (stdin); c = getchar (); } while (c == 's' || c == 'S'); return 0; } /* Respuesta 3.b) */ void inicializa (int v[], int n); void estadisticas (int n, int tur [], int caram[], int tmn[]); void partida (void) { int tmn [12], turnos [12], carambolas [12]; int carambolas_equipo [2]; int n_carambolas, caram; int i, n; /* Jugadores */ printf ("Introduce número de jugadores: "); scanf ("%d", &n); printf ("A cuántas carambolas: "); scanf ("%d", &n_carambolas); inicializa (tmn, 12); inicializa (turnos, 12); inicializa (carambolas, 12); inicializa (carambolas_equipo, 2); do { for (i = 0; i < n; i++) { printf ("Turno del jugador %d. Carambolas: ", i + 1); scanf ("%d", &caram); carambolas_equipo [i%2] += caram; if (tmn [i] < caram) tmn [i] = caram; carambolas [i] += caram; turnos [i]++; if (carambolas_equipo [i%2] >= n_carambolas) break; } } while (carambolas_equipo [i%2] < n_carambolas); printf ("Ha ganado el equipo %d, con %d/%d carambolas.\n", i%2 + 1, carambolas_equipo [i%2], n_carambolas); estadisticas (n, turnos, carambolas, tmn); } void inicializa (int v[], int n) { int i; for (i = 0; i < n; i++) v[i] = 0; } /* Respuesta 3.c) */ void estadisticas (int n, int tur [], int car[], int tmn[]) { int i; printf (" Estadísticas.\n"); for (i = 0; i < n; i++) printf ("Jugador %d: %d turnos, %.1f carambolas/turno. " "Tirada más numerosa: %d.\n", i + 1, tur[i], (float) car[i]/tur[i], tmn[i]); }