Ir ao conteúdo
  • Cadastre-se

chagguk

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Reputação

0
  1. Tentei mas não deu certo também, estou usando o URI, eles deram exemplos de entra e saída também. Exemplos: Entrada: 7 8 9 10 Saída: O JOGO DUROU 2 HORA(S) E 2 MINUTO(S) Entrada: 7 7 7 7 Saída: O JOGO DUROU 24 HORA(S) E 0 MINUTO(S) Entrada: 7 10 8 9 Saída: O JOGO DUROU 0 HORA(S) E 59 MINUTO(S)
  2. Eu usei essa lógica; if (hd<0): Se o hd for menor que zero, quer dizer que nesse caso a hora inicial é maior que a final, então automaticamente quer dizer que se passou um dia, então tem que somar 24 hrs. Ex: > Entrada: 3h 0min (início) e 2h 0min 9(final) É impossível o jogo começar 3h da manhã de um dia e terminar 2h no mesmo dia, então quer dizer que começou 3h em um dia e terminou 2h em outro. Então faz: > hf-hi = 2-3 = -1 > Soma com 24 hrs = -1+24 = Se passaram 23h > Saída: O JOGO DUROU 23 HORA(S) E 0 MINUTOS if (md<0) Usei o mesmo raciocínio com o if de cima, se mf-mi for negativo, eu adiciono 60 min (ao invés de 24h), mas como 60 min é uma hora, eu tiro uma hora do hd, pra ficar correto, de acordo com a regra de soma e subtração de horas e minutos. Isso serve mais pra casos em que o jogo dura somente minutos, e não horas. Ex: >Entrada: 7 10 8 9 --> Eu testei seu código com essa entrada, e falou que precisa durar no mínimo 1 min e 24h; > hd= 8-7=1 > md= 9-10= -1 > Soma com 60 min = -1+60 = 59 min >Saída: O JOGO DUROU 0 HORA(S) E 59 MINUTOS E eu percebi que eu tava esquecendo de uma coisa no meu código, se as horas e minutos fossem iguais, tipo 7 7 e 7 7, era pra mostrar que o jogo durou 24h, e eu incluí isso nele, mas mesmo assim deu errado. Código: #include <iostream> #include <iomanip> #include <cmath> using namespace std; int main () { int hi,mi,hf,mf,hd,md; cin>>hi>>mi>>hf>>mf; hd=hf-hi; md=mf-mi; if (hi==hf) { if (mi==mf) { cout<<"O JOGO DUROU 24 HORA(S) E 0 MINUTO(S)"<<endl; return 0; } else { if (md<0) { md=md+60; hd=hd-1; cout<<"O JOGO DUROU "<<hd+24<<" HORA(S) E "<<md<<" MINUTO(S)"<<endl; return 0; } else return 0; } } if (hd<0) { hd=hd+24; } if (md<0) { md=md+60; hd=hd-1; } cout<<"O JOGO DUROU "<<hd<<" HORA(S) E "<<md<<" MINUTO(S)"<<endl; return 0; }
  3. Fiz isso, e deu 10% errado agora Código: #include <iostream> #include <iomanip> #include <cmath> using namespace std; int main () { int hi,mi,hf,mf,hd,md; cin>>hi>>mi>>hf>>mf; hd=hf-hi; md=mf-mi; if (hd<0) { hd=hd+24; } if (md<0) { md=md+60; hd=hd-1; } else if ((hd>24)||(md<1)) { return 0; } cout<<"O JOGO DUROU "<<hd<<" HORA(S) E "<<md<<" MINUTO(S)"<<endl; return 0; }
  4. Olá, eu estou resolvendo o seguinte problema, eu resolvi, os dados batem com o exemplo, mas mesmo assim quando eu envio fala que está 5% errado. Li e reli várias vezes e não localizei o erro. Problema: Leia a hora inicial, minuto inicial, hora final e minuto final de um jogo. A seguir calcule a duração do jogo. Obs: O jogo tem duração mínima de um (1) minuto e duração máxima de 24 horas. Entrada: Quatro números inteiros representando a hora de início e fim do jogo. Saída: Mostre a seguinte mensagem: “O JOGO DUROU XXX HORA(S) E YYY MINUTO(S)” . Minha resposta: #include <iostream> #include <iomanip> #include <cmath> using namespace std; int main () { int hi,mi,hf,mf,hd,md; cin>>hi>>mi>>hf>>mf; hd= hf-hi; md=mf-mi; if (hd<0) { hd=hd+24; } if (md<0) { md=md+60; hd=hd-1; } cout<<"O JOGO DUROU "<<hd<<" HORA(S) E "<<md<<" MINUTO(S)"<<endl; return 0; } Agradeço quem puder me ajudar a ver o que eu fiz de errado.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!