Error 5% URI C - 1047 - Minutes Play Time

Asked

Viewed 554 times

-1

I can’t seem to solve this problem of URI. In the tests I performed, my solution worked perfectly, but when I submit the URI evaluation, I get the message that there is 5% error in the program.

inserir a descrição da imagem aqui Follow my code below:

#include <stdio.h>

int main()
{

    int horaInicio, minutoInicio, horaFim, minutoFim, tempoJogoHora, tempoJogoMinuto, dia = 24, hora = 60;

    scanf("%d %d %d %d", &horaInicio, &minutoInicio, &horaFim, &minutoFim);

// Atribuição do tempo em HORAS
    if (horaFim == (horaInicio + 1) && (minutoFim < minutoInicio) )
        tempoJogoHora = 0;
    else if (horaInicio == horaFim)
        tempoJogoHora = 24;
    else if (horaInicio < horaFim)
        tempoJogoHora = horaFim - horaInicio;
    else if (horaInicio > horaFim)
        tempoJogoHora = dia - horaInicio + horaFim;

//Atribuição do tempo em minutos
    if (minutoInicio < minutoFim)
    {
        tempoJogoMinuto = minutoFim - minutoInicio;
    }
    else if (minutoInicio == minutoFim ){

        tempoJogoMinuto =0;
    }
    else if (tempoJogoMinuto == 60)
            tempoJogoHora++;
        else
            tempoJogoMinuto = hora - minutoInicio + minutoFim;

    if (tempoJogoHora >= 0 && tempoJogoHora<=dia||(tempoJogoMinuto==0 && hora >0))
        printf("O JOGO DUROU %d HORA(S) E %d MINUTO(S)\n", tempoJogoHora, tempoJogoMinuto);
    return 0;
}

1 answer

0

Your solution is quite complicated.
Makes normal difference (end time - start time) then adjusts if necessary

#include <stdio.h>

void deltaHM(int *h, int *m, int hi, int mi, int hf, int mf) {
    // calculo
    *h = hf - hi; // diferenca normal, sem preocupacao
    *m = mf - mi; // valor final - valor inicial

    // ajuste minutos, se necessario
    if (*m < 0) { *m += 60; *h -= 1; }
    // ajuste horas, se necessario
    if (*h < 0) { *h += 24; }
    // ajuste caso especial
    if (*h == 0 && *m == 0) { *h = 24; }
}

int main(void) {
    int h, m;
    deltaHM(&h, &m, 7, 8, 9, 10); printf("7 8 9 10 ==> %dhr e %dmin\n", h, m);
    deltaHM(&h, &m, 7, 7, 7, 7);  printf("7 7 7 7 ==> %dhr e %dmin\n", h, m);
    deltaHM(&h, &m, 7, 10, 8, 9); printf("7 10 8 9 ==> %dhr e %dmin\n", h, m);

    deltaHM(&h, &m, 7, 7, 7, 6); printf("7 7 7 6 ==> %dhr e %dmin\n", h, m);
    deltaHM(&h, &m, 7, 7, 7, 8); printf("7 7 7 8 ==> %dhr e %dmin\n", h, m);
    deltaHM(&h, &m, 7, 7, 6, 7); printf("7 7 6 7 ==> %dhr e %dmin\n", h, m);
    deltaHM(&h, &m, 7, 7, 8, 7); printf("7 7 8 7 ==> %dhr e %dmin\n", h, m);
    deltaHM(&h, &m, 7, 6, 7, 7); printf("7 6 7 7 ==> %dhr e %dmin\n", h, m);
    deltaHM(&h, &m, 7, 8, 7, 7); printf("7 8 7 7 ==> %dhr e %dmin\n", h, m);
    deltaHM(&h, &m, 6, 7, 7, 7); printf("6 7 7 7 ==> %dhr e %dmin\n", h, m);
    deltaHM(&h, &m, 8, 7, 7, 7); printf("8 7 7 7 ==> %dhr e %dmin\n", h, m);

    return 0;
}

https://ideone.com/r8zXu9

Browser other questions tagged

You are not signed in. Login or sign up in order to post.