2) non capisco perchè nell'ultimo elemento dell'array mi escono i numeri del lotto, per questo ho usato lo stratagemma, inutile:
alba_tramonto_HM[0] = (int)floor(alba);
alba_tramonto_HM[1] = (int)floor((alba - alba_tramonto_HM[0]) * 60.0);
alba_tramonto_HM[2] = (int)floor(tramonto);
alba_tramonto_HM[3] = (int)floor((tramonto - alba_tramonto_HM[2]) * 60.0);
alba_tramonto_HM[4]++;
...non ho ancora trovato una soluzione
intendi alba_tramonto_HM[4] ? beh... perché come ho detto nel post precedente quell'array è di 4 elementi, non di 5, perché l'indicizzazione dell'array parte da 0, quindi accedere all'elemento 4 corrisponde a considerare il 5 elemento di un array che ne ha solo 4... quindi prende quello che nella memoria segue il 4 elemento dell'array, ma che te non hai la più pallida idea di cosa possa essere, e a modificarlo rischi anche segmentation fault... visto che puoi andare a leggere/scrivere in celle di memoria contenenti chissà cosa...
edit: usa macro per dire cosa sono quegli indici dell'array (0, 1, 2, 3 e 4), così si capisce meglio

sennò devi tirare un po a caso cosa c'è in quegli elementi dell'array... per non considerare i problemi relativi ad un "cambio di idea" sull'indice degli elementi ;D ;D
1) siccome non sono un programmatore esperto, quale sarebbe il modo migliore di riscrivere la funzione, in modo che l'array con gli orari di alba e tramonto non sia più una variabile globale ma sia qualcosa che stia bene dentro una libreria? Ho capito che dovrei usare i puntatori, ma non mi è ancora ben chiaro il meccanismo con cui vengono usati nelle funzioni.
riperdonami... ma non so quale funzione vorresti creare...
cmq per una libreria ricordati di fare un file.h, contenente macro, dichiarazioni di funzioni e volendo anche altre inclusioni e un file.cpp che include file.h e implementa le funzioni dichiarate in esso; poi nello sketch (o dove ti serve) includi il file.h...
per il file.cpp (source) fallo in cpp, perché farlo in c comporterebbe problemi che non ho ancora ben capito legato al compilatore... quindi risolvilo direttamente con un file.cpp, tanto ciò che va bene in c va bene anche in cpp

(se avevi intenzione di farla in c e non in cpp)
che altro dire... i puntaori puntano ad zone in memoria... non sono facili da capire... forse ti conviene evitarli se puoi... magari nelle funzioni usa variabili static, che mantengono il loro valore per tutta la durata dell'esecuzione del programma
