Cieco...non vedi che lo usa nella funzione specifica n come parametro d'uscita?

Il tuo problema è che non puoi assegnare a un vettore/matrice una dimensione decisa in fase di esecuzione, cioè

codice:
int n;
cin >> n;
int m[n]; //errore!
questo è sbagliato! Con l'allocazione statica, cioè quella che hai appena fatto, n dovrebbe essere noto in fase di compilazione, cosa che non è!

Se vuoi farlo decidere all'utente tramite il cin devi obbligatoriamente usare l'allocazione dinamica, cioè fare una cosa tipo:

codice:
int n;
cin >> n;
int* m = new int[n];
//..il tuo codice..

delete []m; //non dimenticare mai di deallocare!!