Ir ao conteúdo
  • Cadastre-se

Problema no while.


João321

Posts recomendados

Galera estou aprendendo a programar em 'C' agora, e queria saber porque meu programa não esta executando as entrada "23 59 0 34", assim que eu digito apenas um 0 na entrada, ele não imprime nada e acaba o loop, mas eu queria que ele só parasse o loop quando tivesse uma entra com quatro zeros Ex: "0 0 0 0".


 

#include <stdio.h>
int main()
{
    int hora1, hora2, minuto1, minuto2, hora, tempo;
    scanf("%d%d%d%d", &hora1, &minuto1, &hora2, &minuto2);
    while (hora1!=0 && minuto1!=0 && hora2!=0 && minuto2!=0)
    {
        if(hora1<hora2)
        {
            hora = (hora2 - hora1) * 60;
            tempo = (minuto1>=minuto2)? hora - (minuto1 - minuto2) : hora - (minuto2-minuto1);
        }
        else if(hora1==hora2)
        {
            tempo = (minuto1>=minuto2)?  1440 - (minuto1 - minuto2): 1440 - (minuto2 - minuto1);
        }
        else
        {
            hora = ((24 - hora1) + hora2) * 60;
            tempo = (minuto1>=minuto2)? hora - (minuto1 - minuto2) : hora - (minuto2-minuto1);
        }
        printf("%d\n", tempo);
        scanf("%d%d%d%d", &hora1, &minuto1, &hora2, &minuto2);
    }
    return 0;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@João321  
 

#include <stdio.h>
int main()
{
    int hora1, hora2, minuto1, minuto2, hora, tempo;
    scanf("%d%d%d%d", &hora1, &minuto1, &hora2, &minuto2);
    while (hora1>=0 && minuto1>=0 && hora2>=0 && minuto2>=0)
    {
        if(hora1<hora2)
        {
            hora = (hora2 - hora1) * 60;
            tempo = (minuto1>=minuto2)? hora - (minuto1 - minuto2) : hora - (minuto2-minuto1);
        }
        else if(hora1==hora2)
        {
            tempo = (minuto1>=minuto2)?  1440 - (minuto1 - minuto2): 1440 - (minuto2 - minuto1);
        }
        else
        {
            hora = ((24 - hora1) + hora2) * 60;
            tempo = (minuto1>=minuto2)? hora - (minuto1 - minuto2) : hora - (minuto2-minuto1);
        }
        printf("%d", tempo);
        scanf("%d%d%d%d", &hora1, &minuto1, &hora2, &minuto2);
    }
    return 0;
}

 Mudei o while pra : while (hora1>=0 && minuto1>=0 && hora2>=0 && minuto2>=0)
Creio que seja porque quando colocava hora != 0 (diferente de zero) sempre que colocava um zero ele parava...Testa ai

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@João321

#include <stdio.h>
int main()
{
    int hora1, hora2, minuto1, minuto2, hora, tempo;
    scanf("%d%d%d%d", &hora1, &minuto1, &hora2, &minuto2);
    hora1!=0;
	minuto1!=0;
	hora2!=0;
	minuto2!=0;
    while (hora1,minuto1,hora2,minuto2)
    {
        if(hora1<hora2)
        {
            hora = (hora2 - hora1) * 60;
            tempo = (minuto1>=minuto2)? hora - (minuto1 - minuto2) : hora - (minuto2-minuto1);
        }
        else if(hora1==hora2)
        {
            tempo = (minuto1>=minuto2)?  1440 - (minuto1 - minuto2): 1440 - (minuto2 - minuto1);
        }
        else
        {
            hora = ((24 - hora1) + hora2) * 60;
            tempo = (minuto1>=minuto2)? hora - (minuto1 - minuto2) : hora - (minuto2-minuto1);
        }
        printf("%d\n", tempo);
        scanf("%d%d%d%d", &hora1, &minuto1, &hora2, &minuto2);
    }
    return 0;
}

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...