Secondo me nel codice ti sei complicato un pò la vita, condivido ciò che ha detto screative ma provo comunque a darti una mano (ricorda che in questo forum non si possono mandare i codici interi, qua non troverai mai qualcuno che ti farà l'esercizio ma troverai (quasi) tutti che proveranno a farti arrivare da solo alla soluzione dandoti delle dritte).
Ti descrivo il procedimento che avrei utilizzato io...ci sono due opzioni:
1) dato che il vettore iniziale non ti servirà più dopo che avrai preso "ciò che ti serviva" puoi usarlo al posto di creare ad esempio un nuovo array per il numero minore quindi potresti con un ciclo mettere Array[posizione]=Array[posizione]-1 e creare il restante (maggiore)
2) crei entrambi i vettori che ti servono (ti descrivo il procedimento del minore, quello del maggiore è identico devi solo mettere un "+" al posto del "-"), crea un ciclo while (se preferisci il for usa il for) ed istituisci un contatore, ad esempio i inizialmente uguale a 0
i==0;
while (i=<n) {
Arrayminore[i]=Array[i]-1;
i++;
}
Poi procedi nel restituire i vettori creati ed il gioco è fatto