
Code:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define max 4
int a[max][max];
int s=0;
int **minor(int arr[][max],int i,int j);
int det(int arr[][max],int i,int j);
int main()
{
int i,j,n;
// int **b;
//b=(int **)malloc((max-1)*sizeof(int));
int **b,q;
b=(int **)malloc((max-1)*sizeof(int *));
for (q= 0; q< max-1; q++){
b[q]= (int *) malloc((max-1)* sizeof(int));
}
printf("enter the elements of the array::\n");
for(i=0;i<max;i++)
{
for(j=0;j<max;j++)
{
scanf("%d",&n);
a[i][j]=n;
}
}
b=minor(a,2,1);
printf("the minor array::\n");
for(i=0;i<max-1;i++)
{
for(j=0;j<max-1;j++)
{
printf("data=%d\n",b[i][j]);
}
}
return(0);
}
int **minor(int arr[][max],int i,int j)
{
int p[max-1][max-1];
int **b,q;
b=(int **)malloc((max-1)*sizeof(int *));
for (q= 0; q< max-1; q++){
b[q]= (int *) malloc((max-1)* sizeof(int));
}
int k=0,l=0,x=0,y=0;
printf("katti");
//b=(int **)malloc(sizeof(a));
for(x=0;x<max;x++)
{l=0;
for(y=0;y<max;y++)
{//printf("data=%d\n",arr[x][y]);
if(x!=i && y!=j)
{
b[k][l]=arr[x][y];
printf("data=%d\n",b[k][l]);
l++;
}
}
if(x!=i)
k++;
}
return(b);
}
int det(int arr[][max],int i,int j)
{
if(sizeof(a)==sizeof(int *))
{
s=s+arr[0][0];
if(i==max-1)
return(s);
else
return(det(arr,i+1,j));
}
else
return(pow(-1,(i+j))*arr[i][j]*det(minor(arr,i,j),i,j));
}

