Queremos hacer una aplicación en C que permita: Cargar el puntaje final del equipo contrario. Ingresar los datos de hasta 50 jugadores argentinos (camiseta, posición, tiros realizados). Evaluar el partido: Contar jugadores por posición (b, p, d). Mostrar el número de camiseta con mayor puntaje. Calcular puntaje total del equipo argentino y mostrar si ganó o perdió. Salir del programa. Las restricciones son: Usar funciones con punteros y vectores (no globales). Cálculo del puntaje de cada jugador: 2 * zona + 3 * fueraZona + 1 * libres.
Aquí te dejo un ejemplo de cómo podrías implementar la aplicación en C: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> // Estructura para representar un jugador typedef struct { int camiseta; char posicion[10]; int tirosRealizados; int zona; int fueraZona; int libres; } Jugador; // Función para cargar el puntaje final del equipo contrario void cargarPuntajeFinal(int *puntajeFinal) { printf("Ingrese el puntaje final del equipo contrario: "); scanf("%d", puntajeFinal); } // Función para ingresar los datos de un jugador void ingresarJugador(Jugador *jugador) { printf("Ingrese la camiseta del jugador: "); scanf("%d", &jugador->camiseta); printf("Ingrese la posición del jugador (b, p, d): "); scanf("%s", jugador->posicion); printf("Ingrese los tiros realizados del jugador: "); scanf("%d", &jugador->tirosRealizados); printf("Ingrese los tiros en zona del jugador: "); scanf("%d", &jugador->zona); printf("Ingrese los tiros fuera de zona del jugador: "); scanf("%d", &jugador->fueraZona); printf("Ingrese los tiros libres del jugador: "); scanf("%d", &jugador->libres); } // Función para evaluar el partido void evaluarPartido(Jugador *jugadores, int tam, int *puntajeFinal) { int puntajeTotal = 0; int jugadoresPorPosicion[3] = {0, 0, 0}; // Contar jugadores por posición for (int i = 0; i < tam; i++) { if (strcmp(jugadores[i].posicion, "b") == 0) { jugadoresPorPosicion[0]++; } else if (strcmp(jugadores[i].posicion, "p") == 0) { jugadoresPorPosicion[1]++; } else if (strcmp(jugadores[i].posicion, "d") == 0) { jugadoresPorPosicion[2]++; } } // Calcular puntaje total del equipo argentino for (int i = 0; i < tam; i++) { puntajeTotal += 2 * jugadores[i].zona + 3 * jugadores[i].fueraZona + 1 * jugadores[i].libres; } // Mostrar el número de camiseta con mayor puntaje int maxPuntaje = 0; int camisetaMaxPuntaje = 0; for (int i = 0; i < tam; i++) { int puntaje = 2 * jugadores[i].zona + 3 * jugadores[i].fueraZona + 1 * jugadores[i].libres; if (puntaje > maxPuntaje) { maxPuntaje = puntaje; camisetaMaxPuntaje = jugadores[i].camiseta; } } // Mostrar si ganó o perdió if (puntajeTotal > *puntajeFinal) { printf("El equipo argentino ganó con un puntaje total de %d.\n", puntajeTotal); } else if (puntajeTotal < *puntajeFinal) { printf("El equipo argentino perdió con un puntaje total de %d.\n", puntajeTotal); } else { printf("El partido terminó empatado con un puntaje total de %d.\n", puntajeTotal); } printf("Jugadores por posición: b = %d, p = %d, d = %d\n", jugadoresPorPosicion[0], jugadoresPorPosicion[1], jugadoresPorPosicion[2]); printf("Camiseta con mayor puntaje: %d\n", camisetaMaxPuntaje); } int main() { int tam = 0; int puntajeFinal; Jugador *jugadores = NULL; // Pedir el número de jugadores printf("Ingrese el número de jugadores (hasta 50): "); scanf("%d", &tam); // Pedir el puntaje final del equipo contrario cargarPuntajeFinal(&puntajeFinal); // Pedir los datos de los jugadores jugadores = (Jugador *)malloc(tam * sizeof(Jugador)); for (int i = 0; i < tam; i++) { ingresarJugador(&jugadores[i]); } // Evaluar el partido evaluarPartido(jugadores, tam, &puntajeFinal); // Liberar memoria free(jugadores); return 0; } ``` Este código define una estructura `Jugador` para representar a cada jugador, con campos para la camiseta, posición, tiros realizados, tiros en zona, tiros fuera de zona y tiros libres. La función `ingresarJugador` permite ingresar los datos de un jugador, y la función `evaluarPartido` calcula el puntaje total del equipo argentino, muestra el número de camiseta con mayor puntaje y determina si ganó o perdió. En el `main`, se pide el número de jugadores, se carga el puntaje final del equipo contrario y se piden los datos de los jugadores. Luego, se evalúa el partido y se muestra el resultado. Finalmente, se libera la memoria asignada para los jugadores.