Stai facendo un po' di confusione ...
La funzione
int ordina (int i, int N, int a[10]){
for(i=0;i<N;i++)
cin>>a[i];
return a[i];
}
perché l'hai chiamata ordina? Il codice serve ad acquisire quindi si chiamerà
acquisizione. Ha bisogno solamente del vettore passato come argomento e basta. Non restituisce nulla perché le modifiche fatte all'array sono già visibili. Quindi
void acquisizione(int a[])
{
for(i=0;i<N;i++)
cin>>a[i];
}
Nel main la chiamerai dopo la cout
cout<<"Inserisci gli elementi"<<endl;
acquisizione(a);
Le altre prova a scriverle tu.