行列式的值 为什么算不出答案
#include <stdio.h>#define MAX 100
#include <stdlib.h>
double TriangleArea(int n,double a[MAX][MAX]);
int main()
{
int i,j;
int n=4;
double a[MAX][MAX];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("please input the num\n");
scanf("%lf",&a[i][j]);
}
}
printf("%lf",TriangleArea(n,a));
return 0;
}
double TriangleArea(int n,double a[MAX][MAX])
{
int p,i,j,k,x;
double sum=0;
double b[MAX][MAX]={{0}};//atention
if(n == 1)
return a[0][0];
for(i=0;i<n;i++)//控制展开元素
{
for(j=0;j<n-1;j++)
{
for(k=0;k<n-1;k++)
{
if(j<i)
p=0;
else
p=1;
b[j][k]=a[j+p][k++];
}
}
if(i%2==0)
x=1;
else
x=(-1);
//printf("%lf",a[i][1]);
sum+=a[i][0] * x * TriangleArea(n-1,b);
//printf("sum=%lf\n",sum);
}
return sum;
}