Premetto che sono nuovo nel forum e non molto esperto con C (siate comprensivi... )
Non riesco a capire come mai il mio codice non viene compilato:

codice:
#include <stdio.h> 
#include<iostream.h>
#define dim 3
float pot(int ind) 
{ 
   if(ind%2==0)return 1; 
   else return -1; 
}  

float det(float mat[dim][dim], int d) { 
   int i,j,k; 
   float D=0; 
   if(d==1)D=mat[0][0]; 
   for(i=0;i<d&&d>1;++i) 
   { 
      float matrid[d-1][d-1]; 
      for(j=0;j<d;++j) 
      { 
         for(k=1;k<d&&j!=i;++k) 
         { 
            if(j<i){matrid[j][k-1]=mat[j][k];} 
            if(j>i){matrid[j-1][k-1]=mat[j][k]; }
         } 
      }
      D=D+pot(i)*mat[i][0]*det(matrid,d-1); 
   } 
   return D; 
} 

void mat() 
{ 
   int i,j; 
   float m[dim][dim]; 
   printf("scrivi la matrice %dx%d\n",dim,dim); 
   for(i=0;i<dim;++i) 
   { 
      for(j=0;j<dim;++j) 
      { 
         scanf("%f",&m[i][j]); 
      } 
   }
   printf("%f\n",det(m,dim)); 
} 

int main() 
{ 
   mat(); 
   system("pause");
   return 0; 
}
Potete darmi una mano?
P.S. Il programma attuale rende possibile il calcolo di una 3x3, ma basta cambiare il define iniziale per aumentare o diminuire la dimensione della matrice