il fatto è semplice.
se vedi la struttura del nodo dovrebbe essere fatta così
Codice:
struct nodo{
int n;
nodo *prossimo;
}
quando tu fai q->n=n dici che il campo n puntato da q deve essere uguale ad un intero n.
per non confonderti perchè alla funzione non passi la variabile con un'altro nome??
tipo elemento.
ciao