Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Problema simples de decisão em C

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    C / C++ Problema simples de decisão em C

    Galera naõ sei oque está errado aqui, deem uma olhada e uma luz pls.


    /*
    Desenvolva um programa em C que receba a hora de
    início de um jogo e a hora final desse jogo (cada hora
    é composta por duas variáveis inteiras: hora e
    minuto). Esse programa em C deve calcular e mostrar a
    duração do jogo (horas e minutos) sabendo-se que o
    tempo máximo de duração do jogo é de 24 horas e que o
    jogo pode iniciar em um dia e terminar no dia
    seguinte.
    */
    Código:
    void Exercicio16()
    {
         int horai,mini,horaf,minf,horat=0,mint=0;
         printf("Digite hora de inicio :");
         scanf("%d",&horai);
         printf("Digite minuto de inicio :");
         scanf("%d",&mini);
         printf("Digite hora de termino :");
         scanf("%d",&horaf);
         printf("Digite minuto de termino :");
         scanf("%d",&minf);
         if(horai>horaf)
         {
           horat = (24 - horai)+ horaf;
         } 
         else if(horai<horaf)
         {
         horat = horaf -horai;
         }
         else if(horai == horaf)
         {
             if(mini == minf)
             {
                     printf("A duracao do jogo \x82 24h");
             }
             else if(mini<minf)
             {
             printf("Passou de 24h de jogo");     
             }     
             else
             {
              mint = mini - minf;
             }
         }
         else if(mini <= minf)
         {     
             mint = minf - mini;
         }
         else if(mini > minf)
         {     
             mint = mini - minf;
         }
         printf("A quantidade de horas jogadas \x82 : %d:%d",horat,mint);
          
    }

  • Font Size
    #2
    onde está dando erro?

    Comment


    • Font Size
      #3
      nao esta aparecendo os minutos

      Postado Originalmente por Rafa1000grau Ver Post
      onde está dando erro?
      não está aparecendo os minutos corretos.

      Comment


      • Font Size
        #4
        Eproctux
        Tudo que você precisa pro programa funcionar já esta nele, apenas está utilizando a lógica errada...
        Quando você faz:
        If()
        Else if()
        else()
        Apenas uma das opções está certa, então ele só irá executar a certa...
        E você está fazendo o contrário, tipo, está usando um if() para calcular as horas, depois else if() para calcular os minutos. Mas no caso, ou ele irá calcular um, ou outro, porque estão dentro da MESMA estrutura de condição.
        E outra coisa é que o programa tem um bugzinho, se a pessoa jogar apenas alguns minutos, sem chegar a 1 hora, o programa diz q ele jogou mais de 24 horas. Por exemplo se eu colocar
        horai=12
        mini=10
        horaf=12
        minf=30
        Então apresenta este problema, uma saída seria solicitar a data também para fazer a comparação.
        Para dar uma ajudinha vou por uma parte do codigo pra vc:

        void teste()
        {
        int horai,mini,horaf,minf,horat=0,mint=0;
        printf("Digite hora de inicio :");
        scanf("%d",&horai);
        printf("Digite minuto de inicio :");
        scanf("%d",&mini);
        printf("Digite hora de termino :");
        scanf("%d",&horaf);
        printf("Digite minuto de termino :");
        scanf("%d",&minf);

        if(horai < horaf)
        {
        if(mini < minf)
        {
        horat = horaf-horai;
        mint = minf-mini;
        }
        else if(mini > minf)
        {
        horat = (horaf-horai)-1;
        mint = (60 - mini) + minf;
        }
        else
        {
        horat = horaf-horai;
        mint = 0;
        }
        }

        printf("A quantidade de horas jogadas eh: %d:%d",horat,mint);

        }
        Repare que todo este código está dentro de uma única estrutura if principal. O resto é só seguir a lógica explorando as outras possibilidades de "horas" em outras estruturas if.
        Ah, também seria uma boa limitar a hora em 24 e os minutos em 60 (se o usuario digitar um numero maior ou menor que 0 ele apresentará erro).

        Qlquer coisa responde ai!

        Comment


        • Font Size
          #5
          vlw man

          resolveu meu problema.

          Comment


          • Font Size
            #6
            a disposição =D

            Comment

            X
            Working...
            X