Ir ao conteúdo
  • Cadastre-se
Lindon Johnsson Júnior

C Exercício de conversão envolvendo minutos

Recommended Posts

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!

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
#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 ...

  • 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

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.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

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);
}

 

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

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





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

×