[ Foro de C ]

Ayuda con ejercicio sencillo (cálculos y variables) [C]

24-Apr-2021 21:18
Invitado (Estudiante)
0 Respuestas

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;
}




Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...