Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Lindon Johnsson Júnior

C Exercício de conversão envolvendo minutos

Recommended Posts

Postado (editado)

Oi, galera do Clube do Hardware!

Estou com uma dúvida num exercício da faculdade

A questão é a seguinte: "Escreva um programa que converta um intervalo de tempo dado em minutos, em horas, minutos e segundos. Por exemplo, se o tempo dado por 145,87 min, o programa deve fornecer 2h 25min e 52,2s.

Eu escrevi o programa e utilizei o valor dado pela questão para testar, mas não sei como faço a conversão correta para segundos

 

#include <stdio.h>
main()
{
    int min, horas, minutos, segundos;
    printf("Insira a quantidade de minutos: ");
    scanf("%d", &min);
    
    horas = min/60;
    minutos = min%60;
    segundos = //Aqui está minha dúvida, tentei diversas formas mas não consegui
    
    printf("Isso e igual a %dh, %dmin e %ds", horas, minutos, segundos);
}

 

Se puderem me ajudar, fico muito grato!

 

 

Editado por Lindon Johnsson Júnior
esqueci de usar o CODE
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado (editado)
#include <stdio.h>
main()
{
    int min, horas, minutos,segundos;
    printf("Insira a quantidade de minutos: ");
    scanf("%d", &min);
    
    horas = min/60;
    minutos = min%60;
    segundos = horas%minutos;
    
    printf("Isso e igual a %dh, %dmin e %ds", horas, minutos, segundos);
}

nao entendi aquele 52,2 ...

 

Calculei os segundos pegando o resto entre horas e minutos ...

Editado por WilliamNascimento
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela resposta, William, mas infelizmente não deu certo

Tentei da forma que você colocou com outro valor que já sabia a resposta(219,6min = 3h39min36s) e o valor dos segundos deu errado(ficou 3s)

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado (editado)

Uma observação você diz que que os minutos que o usuário informa podem ser fracionados porém armazena eles em uma variável inteira.

 

Talvez devido a observação acima a resposta do @WilliamNascimento tem um equivoco no calculo dos segundos que é representado pela fração.

 

Dito isso os cálculos seriam:

 

image.png.e6d5269bc7ae384fce11bfda8d4b1dc9.png

 

image.png.4bf169f4a845a58bfe69a8cff478cd55.png

 

image.png.a64a9e88a003820170470fc25e8850a3.png

 

E o algorítimo correto seria:

#include <stdio.h>

//Assinatura basica definida pelas regras do C11 http://c0x.coding-guidelines.com/5.1.2.2.1.html
int main(void)
{
    int horas, minutos;
    //Tipo correto de min e segundos de acordo com os requisitos
    float min, segundos;
    
    printf("Insira a quantidade de minutos: ");
    scanf("%f", &min);
    
    //Ao armazenar o resultado da operação em uma variável do tipo inteiro a fração é descartada
    horas = min / 60;
    //É necessário converter min para inteiro( (int)min ) para utilizar o operador de modulo
    minutos = (int)min % 60;
    //min - (int)min é utilizado para extrair somente a fração do valor
    //219,6 - 219 = 0,6
    //0,6 * 60 = 36 segundos
    segundos = (min - (int)min) * 60;
    
    //Você pode arredondar os segundos com %.1f onde 1 representa a quantidade casas demais que você deseja
    printf("Isso e igual a %dh, %dmin e %fs", horas, minutos, segundos);
    
    return 0;
}

Você pode conferir e testar em  https://ideone.com/sN7bis.

Editado por HwapX
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado (editado)

Como você possui os minutos, você pode usar a famosa regra de 3 para calcular isso:

 

PS: Desculpe pelo o erro de digitação, na linha "Fazendo um regra de 3" era pra ser "Fazendo uma regra de 3"

1g8owsK.png

 

#include <stdio.h>

int main()
{
    int min, horas, minutos,segundos;
    printf("Insira a quantidade de minutos: ");
    scanf("%d", &min);
    
    horas = min / 60;
    minutos = min % 60;
    segundos = min * 60;
    
    printf("Isso e igual a %dh, %dmin e %ds", horas, minutos, segundos);
}

 

Editado por cyer

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×