Ir para conteúdo
Fórum Script Brasil
  • 0

ajuda porfavor em C


Tainá Santos

Pergunta

Boa noite pessoas

preciso fazer um algoritmo em C que faça o seguinte

Leia um valor inteiro equivalente a um determinado valor em segundos. Retorne quantas horas, minutos e segundos são compostos por esses valor. Por exemplo 3670(segundos) formaria 1 hora, 1 minuto e 10 segundos.

Eu pensei em fazer ele dessa forma mas vi que estava errada. Agora não sei mais como fazer ele me ajudem pleaaase :D

Boa noite pessoas

preciso fazer um algoritmo em C que faça o seguinte

Leia um valor inteiro equivalente a um determinado valor em segundos. Retorne quantas horas, minutos e segundos são compostos por esses valor. Por exemplo 3670(segundos) formaria 1 hora, 1 minuto e 10 segundos.

Eu pensei em fazer ele dessa forma mas vi que estava errada. Agora não sei mais como fazer ele me ajudem pleaaase :D

Desculpa o código esta aqui

#include <stdio.h>
#include <conio.h>

main ()

{
int segundo, hora, minuto; 
     
     printf ("informe um valor em, segundos\n");
     scanf("%d",&segundo);
     
     if (segundo>60)
     minuto = (segundo / 60);
         
     
     if (segundo>3600)
     hora = (segundo / 3600);
     
     printf(" %d segundos formaria %d horas %d minutos e %d segundos\n",segundo ,hora, minuto, segundo);
     
     getch();
     
     }

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Você está quase lá! Problemas:

* A variável segundo nunca muda. Quando você tira uma hora dos segundos, você quer diminuir 3600 do valor dele, certo?

* A ordem está invertida. Para converter corretamente, você precisa primeiro ver quantas horas tem, diminuir do segundo. Depois, ver quantos minutos tem, e diminuir do segundo. Após isso, o número de segundos que restaram vai estar na variável segundo.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

#include <stdio.h>
#include <conio.h>


int main ()
{
    int segundo_inicial, segundo, hora, minuto;

    hora = 0; // caso não tenha no minimo uma hora, no final não sera representado um endereço de memoria e sim 0 horas
    minuto = 0; // claro que você pode fazer um printf mais sofisticado e condicional, ai fica ao seu criterio

    printf ("informe um valor em, segundos\n");
    scanf("%d",&segundo_inicial);

    segundo = segundo_inicial; //para no final você ainda ter o valor inicial

    if (segundo>=3600) // > ou = caso tenha apenas um hora
    {
        hora = (segundo / 3600);
        segundo = segundo - (hora * 3600); // esta linha é obrigatoria para que haja a dedução do valor inicial
    }

    if (segundo>=60) // > ou = caso tenha apenas um minuto
    {
        minuto = (segundo / 60);
        segundo = segundo - (minuto * 60); // esta linha é obrigatoria para que haja a dedução do valor inicial
    }


    printf(" %d segundos formam %d horas %d minutos e %d segundos\n",segundo_inicial ,hora, minuto, segundo);

    getch();

}

Não sei se estou realmente te ajudando lhe dando a resposta pronta, mas com os comentários será fácil seu entendimento de cada modificação no seu programa inicial. :)

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

  • 0

Só retornando para deixar o codigo final que deu certo. Obrigado pela ajuda :blush:

#include <stdio.h>
#include <conio.h>
main ()
 {
int segundo, hora, minuto, auxiliar; 
     hora = 0;
     minuto = 0;
     segundo = 0;
     
     printf ("informe um valor em segundos\n");
     scanf("%d",&segundo);
     if (segundo>=3600)
     {
     hora = (segundo / 3600);
     minuto = segundo - (hora * 3600);
     auxiliar = minuto;
     minuto = minuto/60;
     segundo = auxiliar - (minuto * 60);
     }
     
     if ((segundo>=60) && (segundo < 3600))
     {
         minuto = (segundo / 60);
         auxiliar = segundo;
         segundo = auxiliar - (minuto * 60);
     }
      
     printf(" %dh:%dm:%ds\n",hora, minuto, segundo);
     
     getch();
     
     }

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...