Ho scritto questo codice e l'ho testato e mi sembra funzionare bene, fatemi sapere nel caso voi individuiate qualche problem:

codice:
void sxcornici(int m[][100],int k,int j,int i,int &somma){
     
     
     //K numero di righe, J numero di colonne, i contatore cornice
     //Esco se le cornici sono finite
     if((k+1)%2==0 && i>=(k+1)/2) return;
     else if((k+1)%2!=0 && i>=(((k+1)/2))) { somma+=m[i][i]; return;}
     
     for(int z=i;z<=j-i;z++) {somma+=m[i][z]+m[k-i][z]; 
     //cout<<"Somma 1: "<<somma<<" J: "<<j<<" K: "<<k<<" I: "<<i<<endl; system("pause");
     }
     for(int z=i+1;z<=k-i-1;z++) {somma+=m[z][i]+m[z][j-i];  
     //cout<<"Somma 2: "<<somma<<" J: "<<j<<" K: "<<k<<" I: "<<i<<endl; system("pause");
     }
     
     //cout<<"Somma Cornice: "<<somma<<endl;
     //system("pause");
     
     sxcornici(m,k,j,i+=1,somma);
     
     }