come da titolo devo scrivere un programma che calcoli la mediana id un array.
Se il numero degli elementi è dispari la mediana si calcola facendo :(n+1)/2.
se invece è pari la mediana si calcola: ((n/2)+(n/2 + 1))/2

ho buttato giu un codice ma praticamente s emetto n giustamente mi calcola la posizione della mediana e non il valore.
Non riesco a calcolare il valore ora vi posto il codice grazie a chi riesci ad aiutarmi.

codice:
#include<iostream>
#define len 20
using namespace std;




int main(){
    
    int n,i;
    int a[len];
    float med;
    
    cout<<"inserisci il numero degli elementi dell'array"<<endl;
    cin>>n;
    
    for(i=0; i<n; i++){
        cout<<"inserisic l'elemento "<<i+1<< " del'array:"<<endl;
        cin>>a[i];
    }
    
    for (i=1; i<n; i++){
    med=0;
    if (n%2==0){
        med=((a[i]/2) + ((a[i]/2) +1))/2;
    }
    else if(n%2!=0){
        med=(a[i]+1)/2;
    }


}
    
    cout<<"la media e'"<<med<<endl;
    
    system("pause");
    return main ();
}