Ir ao conteúdo

C Tempo de viagem (valores em horas e minutos)


Ir à solução Resolvido por devair1010,

Posts recomendados

Postado

Escreva um programa em C que solicite ao a distância de uma viagem a ser percorrida (em Km) e a velocidade média de locomoção (Km/h). Posteriormente calcular o tempo estimado de viagem em horas e minutos, conforme os exemplos abaixo.

 

ENTRADA

Distância em Km da viagem

Velocidade média de locomoção (Em Km/h)
SAÍDA

x horas

y minutos

 

EXEMPLO
367Km
78Km/h
Produz a saída:
4 horas
42 minutos

 

Estou programando dessa forma:

 

#include <stdio.h>
#include <math.h>

int main(){
    
    float distancia,vm,tempo;
    
    printf("Digite a distancia: ");
    scanf("%f",&distancia);
    printf("Digite a velocidade media: ");
    scanf("%f",&vm);
    tempo=distancia/vm;
    printf("%.0f horas\n",tempo);
    printf("%f minutos\n",tempo-(int)tempo);
    return 0;
}

  • Obrigado 1
  • Solução
Postado

@Lord comander      O Cálculo Dos Minutos não está funcionando certo no seu código ,  pois o tempo menos o inteiro de tempo é igual ao resto da divisão do tempo pela velocidade media , em décimos de Unidade , e precisa ser multiplicado por sessenta , pois cada hora tem 60 minutos ,  então para esse caso de teste que você postou , o código poderia ser assim  :

#include <stdio.h>
#include <math.h>
int main(){
    float d=367,vm=78;
    printf("Horas    %2d\n",(int)(d/vm));
    printf("Minutoss %.f\n",(d/vm - (int)(d/vm))*60);
    return 32768;
}

mas usando a função scanf , dá hum erro Estranho , e o cálculo da divisão sai errado , não descobri o motivo , não . . . . !

  • Curtir 1
  • Obrigado 1
Postado

@devair1010 Era isso mesmo, eu estava com problema de encontrar o valor dos minutos. Muito obrigado!!!

Meu código ficou assim:

#include <stdio.h>
#include <math.h>

int main(){

    float dist,vm;

    printf("Digite a distancia: ");
    scanf("%f",&dist);
    printf("Digite a velocidade media: ");
    scanf("%f",&vm);

    printf("%d horas\n",(int)(dist/vm));
    printf("%f minutos\n",(dist/vm - (int)(dist/vm))*60);
    return 0;
}
Para verificar o erro do scanf o programa Code Blocks talvez o ajude.

Eu não entendi o porquê foi colocado no seu return 32768 como valor.

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!