• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Guest tsenart

[Resolvido] Conversão de horas para segundos ou minutos

5 mensagens neste tópico

Olá pessoal...

Estava aqui a ver uns sources que tinha numa pasta já com algum tempo e vi alguns programinhas que tinha feito. Aqui vai um deles.

#include <stdio.h>

long int num(int n_horas, char tipo)
{
     switch(tipo)
     {
         case 'h': return n_horas; break;

         case 'm': return n_horas * 60L; break;

         case 's': return n_horas * 3600L; break;

         default: return -1;
     }

}

int main()
{
int n;
char tipo;

    do
    {
            printf("\nIntroduza o numero de horas('0' para sair): "); scanf("%d",&n);
            printf("\nIntroduza o tipo de conversao(h-horas, m-minutos, s-segundos)"); fflush(stdin); scanf("%c",&tipo);
            printf("\nNum de %c em %d horas-> %ld",tipo,n,num(n, tipo));
    }
    while(n!=0);
return 0;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sera que da para converter km em milhas ou coisa assim seria mais util

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sera que da para converter km em milhas ou coisa assim seria mais util

isso é só dividir por 1,609..........

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

            printf("\nIntroduza o tipo de conversao(h-horas, m-minutos, s-segundos)"); fflush(stdin); scanf("%c",&tipo);

Why fflush(stdin) is wrong

http://faq.cprogramming.com/cgi-bin/smartfaq.cgi?answer=1052863818&id=1043284351

Tens razão.... Eu actualmente já não uso o fflush(stdin). Uso duas chamadas ao scanf do seguinte modo:

scanf("%*[^\n]");
scanf("%*c");

A primeira chamada lê e descarta, ou seja, retira todos os caracteres que eventualmente existam no armazenamento tampão de entrada(buffer), até ao aparecimento do caracter '\n'. A segunda chamada lê e descarta um caracter apenas que, devido à instrução anterior, é o caracer '\n'. Logo, recorrendo a estas duas instruções, todos os caracteres da linha que estava a ser processada foram descartados. Consequentemente, foi lida uma linha completa do armazenamento tampão(buffer) de entrada e a posição de leitura ficou colocada no inicio da linha seguinte.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora