Hola, tengo que hacer este programa.Y bien mi problema es que cuando se falla 3 veces pasa a la siguiente prueba en vez de al siguiente opositor. Otro problema es con la ultima parte estadistica, la de los opositores que han superado las pruebas...etc. Tambien aqui os pongo mi codigo. Gracias. Solo se pueden usar estructuras de control.
Una empresa tiene encomendado realizar las pruebas físicas de 100 aspirantes a
bomberos. Pruebas físicas a realizar por cada aspirante:
• Salto Vertical: mínima 60 cm
• Carrera de 100m lisos: mínima 12 seg.
• Carrera de 1000m. lisos: mínima 3 minutos
Cada opositor debe realizar las tres pruebas seguidas, si no supera todas las pruebas tiene opción de repetir las pruebas un máximo de tres veces. Diseñar un programa que gestione la organización de las pruebas para los opositores. No se pasará al siguiente opositor hasta finalizar con el actual, el número de cada opositor coincidirá con su orden de participación. Las mínimas de cada prueba deben definirse como constantes. Al finalizar la gestión de las pruebas de cada opositor el programa debe de mostrar en pantalla la estadística correspondiente:
• Porcentaje de mejora sobre la mínima en la prueba de salto vertical
• Porcentaje de mejora sobre la mínima en la prueba de 100 m. lisos
• Porcentaje de mejora sobre la mínima en la prueba de 1000 m.
• Número de intentos en superar las pruebas
Al finalizar la participación de los opositores se mostrará por pantalla una estadística global:
• Porcentaje de opositores que han superado la prueba de salto vertical
• Porcentaje de opositores que han superado la prueba de 100 m. lisos
• Porcentaje de opositores que han superado la prueba de 1000 m.
• Porcentaje de opositores que han superado las tres pruebas
También se mostrará por pantalla el número del opositor que mejor tiempo ha obtenido
en la prueba de 100 m. lisos así como el tiempo que ha obtenido.
---------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#define saltover 60
#define Cm 12
#define Mm 3
main()
{
int salto,m,M,mejorasalto,mejoram,mejoraM;
int intentos=1;
int opositor=1;
do{
printf("Opositor:%d\n",opositor++);
while (intentos<=3) {
printf("Introduce la altura de la prueba de salto vertical en cm:\n");
scanf("%d",&salto);superasalto++;
if (saltover<=salto) break;
else if(saltover>salto){
printf("Prueba no superada\n");intentos++;}
else if (saltover>salto)
printf("No ha superado esta prueba");}
intentos=1;
while (intentos<=3){
printf("Introduce el tiempo de la prueba de los 100 metros lisos en segundos:\n");
scanf("%d",&m);supera100m++;
if (Cm<=m) break;
if(Cm>m){
printf("Prueba no superada\n");intentos++;}
else if (Cm>m)
printf("No ha superado esta prueba");}
intentos=1;
while (intentos<=3){
printf("Introduce el tiempo de la prueba de los 1000 metros lisos en minutos:\n");
scanf("%d",&M);supera1000m++;
if (Mm<=M) break;
if(Mm>M){
printf("Prueba no superada\n");intentos++;}
else if (Mm>M)
printf("No ha superado esta prueba");}
intentos=1;
mejorasalto=(salto-saltover)*100/saltover;
mejoram=(m-Cm)*100/Cm;
mejoraM=(M-Mm)*100/Mm;
printf(" Ha mejorado el salto un:%d\n Ha mejorado en la prueba de 100 m:%d\n Ha mejorado en la prueba de 1000m:%d\n El numero de intentos ha sido:%d\n",mejorasalto,mejoram,mejoraM,intentos);
}while (opositor<=100);