[ Foro de C ]
Buenas tardes, vengo renegando todo el día de ayer y hoy con este problema. Las opciones T (de contar corredores) y G (de contar primer puesto) funcionan correctamente pero las opciones P (de sacar el promedio de la suma del tiempo total con los corredores) y S (de decir el segundo puesto) no lo hacen y nada de lo que hago funciona.
Dejo el código por si acaso:
(Aclaro que lo esencial es no salir del tema de control de flujo, variables y demás)
[QUOTE]
#include <stdio.h>
#include <stdlib.h>
#define SALIDA 'F'
int main()
{
//Señalamos la variables que vamos a ir añadiendo a medida que crece el código.//
char opcion;
int id, primer_lugar, segundo_lugar, contador=-1;
float tiempo=0, primer_tiempo=9999.9, segundo_tiempo=0, tiempo_total=-1, promedio=0;
do{
printf("Ingrese el ID del corredor:");
scanf("%d", &id);
if(id>0 && id!=0)
{
printf("Ingrese el tiempo del corredor:");
scanf("%f", &tiempo);
if(tiempo<=primer_tiempo)
{primer_tiempo=segundo_tiempo;
primer_lugar=id;
segundo_lugar=primer_lugar;
primer_tiempo=tiempo;}
}
else if(id<0)
{
printf("El ID ingresado no es valido.");
return 0;
}
tiempo_total=tiempo_total+tiempo;
contador++;
}while(id!=0);
do{
//Procedemos a enumerar las distintas opciones//
system("cls");
printf("-----REGISTRO DEL SENSOR RFID-----\n");
printf("T. Imprime el total de corredores que llegaron a la meta.\n");
printf("P. Imprime el tiempo promedio de los corredores.\n");
printf("G. Imprime el ID y el tiempo del corredor ganador.\n");
printf("S. Imprime el ID y el tiempo del corredor que llego en segundo lugar.\n");
printf("F. Fin del programa.\n");
printf("Seleccione una de las proximas opciones eligiendo la letra senialada:\n");
scanf("%c",&opcion);
getchar();
//Configuramos el switch con los respectivos casos//
switch(opcion)
//Señalamos la primera opción//
{case 'T':
printf("\nEl total de corredores es %d:", contador);
break;
case 'P':
printf("\nEl tiempo promedio es de %.2f", promedio/contador);
break;
case 'G':
printf("\El corredor numero %d fue el ganador con un tiempo de %f", primer_lugar, primer_tiempo);
break;
case 'S':
printf("\El corredor numero %d fue segundo lugar con un tiempo de %f", segundo_lugar, segundo_tiempo);
break;
}
printf("\nPresione ENTER para continuar...");
getchar();
}while(opcion!=SALIDA);
return 0;
}
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)