#include <stdio.h<
#include <conio.h<
int sign(int , int);
int det(int [10][10],int);
void input(int);
int mat1[10][10];
main()
{
int size=4;
clrscr();
input(size);
printf("\n det=%d",det(mat1,size));
getch();
}
int sign(int a,int b)
{
int s=1;
for (int z=1 ; z<=a+b ; z++)
s *= -1;
return s;
}
int det(int mat[10][10],int n)
{
int matris[10][10];
if (n==2) return mat[0][0]*mat[1][1]-mat[0][1]*mat[1][0];
int temp=0;
for (int i=0 ; i<n ; i++)
{
int k=0,j=0;
for (int row=0 ; row<n ; row++)
{
j=0;
int pass=0;
for (int col=0 ; col<n ; col++)
if ((row!=i) && (col!=0))
{
matris[k][j]=mat[row][col];
j++;
pass=1;
}
if (pass) k++;
}
temp += sign(i+1,1)*mat[i][0]*det(matris,n-1);
}
return temp;
}
void input(int n)
{
for (int i=0 ; i<n ; i++)
for (int j=0 ; j<n ; j++)
scanf("%d",&mat1[i][j]);
}