elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda programa c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda programa c++  (Leído 1,079 veces)
sec21

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Ayuda programa c++
« en: 18 Febrero 2014, 19:58 pm »

Hola a todos estoy intentando crear un programilla que tras introducir los tiempos que han tardado una serie de personas al llegar a la meta de una carrera, nos indique el nombre de la persona que lha ganado y el tiempo medio (en segundos) de todas.




Tras hacer los cálculos necesarios para obtener los resultados finales, se preguntara si se desea introducir los datos de otra persona (obliga a que tecleen una S o N no importando que sea mayúscula o minúscula)
Si se responde con una S, el programa repetirá de nuevo el proceso. Solo cuando se teclee una N se mostrara una segunda pantalla mostrando el nombre de la persona que ha llegado en menos tiempo y el tiempo medio (en segundos) de todas las personas que han participado





Mi codigo es este : #include <iostream.h>
#include <conio.h>
#include <ctype.h>
#include <stdio.h>
#include <string.h>

void main()
 {
   int hora, minuto, segundo, total1, total2, total;
   char afir, nombre1[20], nombre2[20],campeon[20];

   total1=0;
   total2=0;

   cout<<"\tIntroduce el nombre de la primera persona\n";
   gets(nombre1);
   cout<<"\tHora(0..23) ...: ";
   cin>>hora;
   cout<<"\tMinutos(0..59).: ";
   cin>>minuto;
   cout<<"\tSegundos(0..59): ";
   cin>>segundo;
   total1=((hora*3600)+(minuto*60)+segundo);

  do{cout<<"¿Otra persona? (S o N)";
     cin>>afir;
    }while (toupper(afir=='S') || toupper(afir=='N'))

  if (afir=='N') then{
   cout<<"\nNombre campeón/a.........: "<<nombre1;
   cout<<"\nSegundos que ha tardado .: "<<total1;
    }

  else{
  
  do{
   cout<<"\tIntroduce el nombre de la persona siguiente\n";
   gets(nombre2);
   cout<<"\tHora(0..23) ...: ";
   cin>>hora;
   cout<<"\tMinutos(0..59).: ";
   cin>>minuto;
   cout<<"\tSegundos(0..59): ";
   cin>>segundo;
   total2=(hora*3600+minuto*60+segundo);

   do{cout<<"¿Otra persona? (S o N)";
     cin>>afir;
    }while (toupper(afir=='S') || toupper(afir=='N'))
      }

   if (total1>total2) then{
         total2=total;
         strcpy(campeon, nombre2);
   }

   else{
       total1=total;
       strcpy(campeon, nombre1);
   }

    }while (afir=='N')

       cout<<"\nNombre campeón/a.........: "<<campeon;
   cout<<"\nSegundos que ha tardado .: "<<total;

 }



si alguien puede corregirlo por favor estaría muy agradecido!!!

Gracias


En línea

xaps

Desconectado Desconectado

Mensajes: 157



Ver Perfil
Re: Ayuda programa c++
« Respuesta #1 en: 18 Febrero 2014, 20:45 pm »

Primero de todo, cuando quieras mostrar código usa las etiquetas GeSHi para encapsularlo y que sea más fácil leerlo.

Veo varios fallos en tu aplicación:
Código
  1. do{cout<<"¿Otra persona? (S o N)";
  2.     cin>>afir;
  3.    }while (toupper(afir=='S') || toupper(afir=='N'))
  4.  
Primero de todo, ¿sabes como funciona toupper()? Le estás pasando un boleano cuando espera un número entero.
Segundo, ese bucle no hace nada. Estaría ejecutándose a si mismo (en el caso de que toupper() estuviera bien empleado) hasta que introdujeras una N.

Replanteate como resolver este problema. Deberías tener un único bucle en el que se pidieran los datos y operara con ellos en cada iteracción.

Saludos.


En línea

"The programmers of tomorrow are the wizards of the future" - Gave Newel
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
AYUDA CON PROGRAMA
Diseño Gráfico
Luisango 1 2,489 Último mensaje 17 Abril 2005, 13:25 pm
por Sub_Cero
ayuda con mi programa
Programación Visual Basic
nitrox 2 2,396 Último mensaje 31 Julio 2005, 00:48 am
por Slasher-K
ayuda programa!!
Programación C/C++
rodrigo_103 4 3,428 Último mensaje 16 Septiembre 2012, 21:58 pm
por rodrigo_103
[Ayuda] ¿Cómo ejecutar otro programa desde mi programa de C#?
.NET (C#, VB.NET, ASP)
Zodiak98 1 6,246 Último mensaje 8 Diciembre 2013, 01:51 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines