Jump to content
Sign in to follow this  
Master_Yoda

ANSWERED Horas, minutos e segundos

Recommended Posts

Master_Yoda

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

Share this post


Link to post
Share on other sites
SLider3

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

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

Share this post


Link to post
Share on other sites
deathseeker25
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....

Share this post


Link to post
Share on other sites
Master_Yoda

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

Fikem bem pessoal e boas programaçoes

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.