TOPIC

WRONG ANSWER(5%) EM MEU CÓDIGO...O QUE PODE SER?

Matteus Gutëmberg asked 4 months ago

#include <stdio.h>

int main(){
    int hora_inicial, hora_final;
    scanf("%d %d", &hora_inicial, &hora_final);
    int somaHorasJogadas = 0;
    if(hora_inicial == hora_final){
        printf("O JOGO DUROU 24 HORA(S)\n");
    }else{
        if(hora_inicial >= 0 && hora_inicial <= 12){
            for(int i = hora_inicial; i <= 12; i++){
                if(hora_inicial == hora_final){
                    break;
                }else{
                    somaHorasJogadas++;
                }
            }

        }
            if(hora_final > 12){
                for(int j = 13; j <= hora_final; j++){
                    if(j == hora_final){
                        somaHorasJogadas = somaHorasJogadas;
                    }else{
                        somaHorasJogadas++;
                    }
                }
            }
        if(hora_inicial >= 13 && hora_inicial <= 24){
            for(int i = hora_inicial; i <= 24; i++){
                if(hora_inicial == hora_final){
                    break;
                }else{
                    somaHorasJogadas++;
                }
            }

        }
            if(hora_final < 13){
                for(int j = 1; j <= hora_final; j++){
                    if(j == hora_final){
                        somaHorasJogadas = somaHorasJogadas;
                    }else{
                        somaHorasJogadas++;
                    }
                }
            }
         printf("O JOGO DUROU %d HORA(S)\n", somaHorasJogadas);
        }
    return 0;
}

Remember not post solutions. Your post may be reviewed by our moderators.

  • Caio Fábio santos D M replied 4 months ago

    olá amigo, eu fiz no visualg mas você pode usar o conceito que eu fiz nos "se" e nos cálculos.

    /Var // Seção de Declarações das variáveis HI,HF:INTEIRO NHJ,S:INTEIRO**`` Inicio // Seção de Comandos, procedimento, funções, operadores, etc...

    Escreval("Digite o horário de início do jogo") Leia(HI)

    Escreval("Digite o horário de término do jogo") Leia(HF)

    NHJ<- 24-HI+HF

    se (HI < HF) entao

    NHJ<- HF-HI

    fimse

    Escreval("NÚMERO DE HORAS JOGADAS= " , NHJ)

    HI: HORÁRIO DE INÍCIO HF: HORÁRIO FINAL DO JOGO NHJ: NÚMERO DE HORAS JOGADAS****

  • josean replied 4 months ago

    Caso comece em um dia e termine em outro seu programa mostra saída incorreta.

    entrada: 0 1

    saída correta: O JOGO DUROU 1 HORA(S)

    saída do seu código: O JOGO DUROU 14 HORA(S)

  • Douglas Antunes replied 4 months ago

    olá amigo,

    este problema é mais facil sendo resolvido apenas calculando as horas com soma e subtração comum. (não há necessidade de usar laços)

    pense desta forma e acredito que vai ficar mais claro para vc resolver este problema.

    boa sorte