Ma tu sai usare i puntatori, in generale, a prescindere dall'esercizio?
Esamina, in particolare, questa riga ...
double *temp = first;
volevi ottenere il valore dell'array, a partire dal puntatore, e inserirlo nella variabile temp ... cosa c'è di sbagliato?