A cura di: Administrator

  /*   * Scrivete una funzione che accetti in input l'ora, suddivisa in tre   * argomenti interi (per le ore, i minuti e i secondi), e restituisca   * il numero dei secondi trascorsi dall'ultima volta che l'orologio   * "ha rintoccato le 12".   * Utilizzate questa funzione per calcolare la quantita' di tempo in   * secondi che intercorre tra due orari, entrambi i quali siano compresi   * all'interno di un ciclo di 12 ore dell'orologio.   */  #include <stdio.h>  unsigned int pastSeconds(unsigned int, unsigned int, unsigned int);  int  main(void)  {  	unsigned int h1, m1, s1;  	unsigned int h2, m2, s2;  	unsigned int ps1, ps2, diff;  	int invalid_data = 1;  	/* ottiene primo orario (ORE MINUTI SECONDI) */  	while (invalid_data) {  		printf("Inserire il primo orario (ORE MINUTI SECONDI: ");  		scanf("%u%u%u", &h1, &m1, &s1);  		if ((h1 < 23) && (m1 < 60) && (s1 < 60))  			invalid_data = 0;  		else  			printf("Orario non valido! Reinserirlonn");  	}  	invalid_data = 1;  	/* ottiene secondo orario */  	while (invalid_data) {  		printf("Inserire il secondo orario (ORE MINUTI SECONDI: ");  		scanf("%u%u%u", &h2, &m2, &s2);  		if ((h2 < 24) && (m2 < 60) && (s2 < 60)) {  			/* Gli orari devo essere in uno stesso arco di 12 ore */  			if ((h1 / 12) != (h2 / 12))  				printf("Gli orari devono essere in uno stesso arco di 12 ore!nn");  			else  				invalid_data = 0; /* dati validi */  		} else  			printf("Orario non valido! Reinserirlonn");  	}  	ps1 = pastSeconds(h1, m1, s1);  	ps2 = pastSeconds(h2, m2, s2);  	if (ps1 > ps2)  		diff = ps1 - ps2;  	else  		diff = ps2 - ps1;  	printf("Tra le ore %.2d:%.2d:%.2d e le ore %.2d:%.2d:%.2d ", h1, m1, s1,  		h2, m2, s2);  	printf("intercorrono %u secondin", diff);  	return 0;  }  unsigned int  pastSeconds(unsigned int hour, unsigned int min, unsigned int sec)  {  	return (sec + (min * 60) + ((hour % 12) * 60 * 60));  }