Tempo em segundos. Escreva uma função que considere a hora como três argumentos inteiros (horas, minutos e segundos) e retorne o número de segundos desde a última vez em que o relógio ‘bateu 12 horas’. Use essa função para calcular a quantidade de tempo em segundos entre duas horas, ambas dentro de um ciclo de 12 horas do relógio.
Passo 1
Fala Galera!!! Tudo certo? Espero que sim!!! Bora para mais um exercício.
Vamos escrever um programa que seja capaz de receber dois horários e retornar qual a diferença em segundos entre eles. Para isso vamos criar um função seconds() que retorna o número de segundos desde que o relógio "bateu 12" dado o tempo de entrada como horas h, minutos m, segundos s.
Definindo a função:
/* segundos retorna o número de segundos desde que o relógio "bateu 12"
dado o tempo de entrada como horas h, minutos m, segundos s */
unsigned seconds( unsigned h, unsigned m, unsigned s )
{
return 3600 * h + 60 * m + s;
} /* end function seconds */
Passo 2
Agora vamos inicializara função principal main() e solicitar que o usuário insira os dois valores para cada horário.
#include
#include
/* protótipo de função */
unsigned seconds( unsigned h, unsigned m, unsigned s );
int main()
{
int hours;
/* horas da hora atual */
int minutes;
/* minutos da hora atual */
int secs;
/* segundos do tempo atual */
int first;
/* primeira vez, em segundos */
int second;
/* segunda vez, em segundos */
int difference;
/* diferença entre dois tempos, em segundos */
printf("Digite a primeira hora (hora/minutos/segundos) como três inteiros: ");
scanf( "%d%d%d", &hours, &minutes, &secs );
/* calcula a primeira vez em segundos */
first = seconds( hours, minutes, secs );
printf("Digite a segunda hora (hora/minutos/segundos) como três inteiros: ");
scanf( "%d%d%d", &hours, &minutes, &secs );
/* calcula o segundo tempo em segundos */
second = seconds( hours, minutes, secs );
/* calcula a diferença */
difference = fabs( first - second );
/* display difference */
printf( "A diferença entre os tempos é de %d segundos\n",
difference );
return 0; /* indicate successful termination */
} /* end main */
Passo 3
A saída do nosso programa será:

E assim finalizamos mais um exercício. Até o próximo galera!!!!
Resposta
#include
#include
/* protótipo de função */
unsigned seconds( unsigned h, unsigned m, unsigned s );
int main()
{
int hours;
/* horas da hora atual */
int minutes;
/* minutos da hora atual */
int secs;
/* segundos do tempo atual */
int first;
/* primeira vez, em segundos */
int second;
/* segunda vez, em segundos */
int difference;
/* diferença entre dois tempos, em segundos */
printf("Digite a primeira hora (hora/minutos/segundos) como três inteiros: ");
scanf( "%d%d%d", &hours, &minutes, &secs );
/* calcula a primeira vez em segundos */
first = seconds( hours, minutes, secs );
printf("Digite a segunda hora (hora/minutos/segundos) como três inteiros: ");
scanf( "%d%d%d", &hours, &minutes, &secs );
/* calcula o segundo tempo em segundos */
second = seconds( hours, minutes, secs );
/* calcula a diferença */
difference = fabs( first - second );
/* display difference */
printf( "A diferença entre os tempos é de %d segundos\n",
difference );
return 0; /* indicate successful termination */
} /* end main */