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 */