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

Master_Yoda

[Resolvido] Horas, minutos e segundos-->pequeno problema no código

4 mensagens neste tópico

Boas programadores,

Então é o seguinte tenho aqui dois exercícios que pretendo fazer e um deles já está resolvido. No entanto vou transcrevê-los....

1. Escrever um programa que leia 3 inteiros correspondentes a uma hora em horas, minutos e segundos, e converta em segundos, a imprima o resultado. Supondo as seguintes variáveis para as horas, minutos e segundos, a leitura poderia ser:

int horas, minutos,segundos;

long int result_em_segundos;

.....

scanf("%d%d%d",&horas, &min, & seg);       /*notar mais uma vex o operador &*/

[/syntax]

Ora eu escrevi exatamente isto (fugi um pouco ao enunciado...mas pronto já rectifico isso....):

/*Horas. minutos e segundos*/




int main()
{
    int horas,min,seg;
    long int result_em_segundos;
    
    printf("\nDiga que horas, quantos minutos e quantos segundos são respectivamente: ");
    scanf("%d%d%d",&horas,&min,&seg);
    
    horas=60*60*horas;
    min=60*min;
    
    printf("O resultado em segundos e de %d \n",horas+min+seg);
    
    
    system("PAUSE");
    
}

Até aqui tudo bem lá me consegui safar com o código etc etc...

O problema é o segundo exercicio:

2. Escreva um programa que efectue a operação inversa no exercicio anterior.

Eu tenho este código para já:

#include <stdio.h>


int main()
{
    int horas,sec,min;
    
    printf("Diga quantos segunds pretende converter para tempo horário....");
    scanf("%d",&sec);
    
    horas=sec/60/60;
    min=sec/60;
    
    printf("Sao %d horas %d minutos e %d segundos",horas,min,sec);
    
    system("PAUSE");
    
}

O problema é que depois de compilar e executar aparece o seguinte em relação ao ultimo printf, introduzindo como dados 3600 segundos:

Sao 1 hora, 60 minutos e 3600 segundos.

Ora isto nao esta bem e espero por resposta....

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Assim á  primeira vista e sem testar eu diria que devias fazer:

horas = sec/3600;
min = (sec%3600)/60;
sec = sec%60;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Citação
Assim  primeira vista e sem testar eu diria que devias fazer:
horas = sec/3600;
min = (sec%3600)/60;
sec = sec%60;

Exactamente...assim já deve funcionar....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimentei e deu....obrigadão pela ajuda...este forum é do melhor!

Fikem bem pessoal e boas programaçoes

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