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);
}