Hai usato temp[i] ma temp è un vettore di char (come cognome) e quindi devi scrivere

strcpy(temp, n[i].cognome);

e così per le altre strcpy.

Occhio che così scambi solamente i cognomi e i dati nelle strutture si mischiano.
Devi tenere conto che ogni elemento della struttra contiene diversi elementi (cognome, nome ...)

P.S. Quando posti del codice usa i tag CODE e indentalo per capirlo meglio.