Im using the blitz library and have created this prototype.
This is the first time I have ever used this lib and was wandering if there is
a better way to get the minor than I am doing
the case where its element by element copying is ugly
Code:
int determinate(Array<int,2>& MatA,int n)
{
  cout << "entering n=\n"<<n;
  if (n==1) return MatA(1,1);
  if (n==2)
     return MatA(1,1)*MatA(2,2)-MatA(1,2)*MatA(2,1);
     
  Array<int,2> Minor(n-1,n-1,fortranArray);
  int det = 0;
  int coefficient;
  
  for (int j = 1; j<=n; j++)
  {
     if (j==1)
          Minor = MatA(Range(2,n),Range(2,n));
     else
     if (j==n)
      Minor = MatA(Range(2,n),Range(1,n-1));
     else
          {
         for (int c=1; c<=j-1; c++){
            for (int r=2; r<=n; r++){
               Minor(r-1,c) = MatA(r,c);
             }
         }
         for (int c=j+1; c<=n ;c++){
            for (int r=2; r<=n; r++){
              Minor(r-1,c-1) = MatA(r,c);
            }
         }
      }
      
     cout << "Minor :"<< Minor << endl;
     cout << "J="<<j<<"n="<<n;
     int p;
     cin >> p;
     
     det=det+MatA(1,j)*(int)pow(-1.0,1+j)*determinate(Minor,n-1);
  }
  return det;
}