Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/01/2015, 18:40
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 16 años
Puntos: 5
Sumar 2 tiempos, ejemplo: 1 hora, 10 min, 5 seg + 3 horas, 70 min, 80 seg

Código:
int main()
{
    //Declaración de variables
    int liHoras1, liMinutos1, liSegundos1,
        liHoras2, liMinutos2, liSegundos2,
        liHorasTotal, liMinutosTotal, liSegundosTotal;

    //Entrada de datos
    printf("Ingrese el tiempo #1 (HH:MM:SS): ");
    scanf("%d:%d:%d", &liHoras1, &liMinutos1, &liSegundos1);
    printf("Ingrese el tiempo #2 (HH:MM:SS): ");
    scanf("%d:%d:%d", &liHoras2, &liMinutos2, &liSegundos2);

    //Procesamiento
    liHorasTotal = liHoras1 + liHoras2;
    liMinutosTotal = liMinutos1 + liMinutos2;
    liSegundosTotal = liSegundos1 + liSegundos2;

    do
    {
        liMinutosTotal = liMinutosTotal - 60;
        liHorasTotal = liHorasTotal + 1;
    } while (liMinutosTotal >= 60);

    if (liSegundosTotal >= 60)
    {
        liSegundosTotal = liSegundosTotal - 60;
        liMinutosTotal = liMinutosTotal + 1;
    }

    //Salida de datos
    printf("\nResultado: %d:%d:%d\n", liHorasTotal, liMinutosTotal, liSegundosTotal);

    return 0;
}
Hola y gracias de antemano.
Mi código funciona pero, cuando los minutos son altos (ejemplo 200 minutos) se debe hacer algo. Lo único que se me ocurrió fue hacerlo con DO, WHILE para que le valla restando 60 cada vez que se pueda.

La pregunta es: es correcto esto, o hay otra solución usando IF?.
Estoy algo perdido, espero puedan ayudarme.

Gracias!.