Witam.
Mam pały problem. Otóż nie działa mi funkcja liczaca wyznacznik macierzy. Wszystko powinno sie wykonywac bez problemu, ale z jakiegos powodu wywala mi program (kompilacja bez problemu). Jestem pewny ze błąd jest w tej wlasnie funkcji. Mozecie pomoc?
double det(double ** matrix, int n)
{
double** minor;
double sum=0.0;
double sign=1.0;
int i;
int x,y,a=0,b=0;
if(n==1) return matrix[0][0];
if(n==2) return (matrix[0][0]*matrix[1][1])-(matrix[0][1]*matrix[1][0]);
minor=matrix_alloc(n-1);
for(i=0;i<n;i++)
{
//kopiowanie macierzy do minor
for(x=1;x<n-1;x++)
{
b=0;
for(y=0;y<n;y++)
{
if(y==i) continue;
minor[a][b]=matrix[x][y];
b++;
}
a++;
}
//koniec kopiowania.
sum+=sign*matrix[0][i]*det(minor,n-1);puts("test3");
sign = -sign;
}
matrix_free(minor, n);
return sum;
}