直接上代码:
#include<stdio.h>
#include<math.h>
#计算行列式函数接口
double solver(double *p[],int n)
{
if(n==1)return *p[0];
double A[n-1][n-1],*B[n-1],s=0;
int i,j,k,x,y;
for(i=0; i<n-1; i++)B[i]=A[i];
for(i=0; i<n; i++)
{
for(x=y=0,j=1; j<n; j++)
{
for(k=0; k<n; k++)
{
if(k==i)continue;
A[x][y++]=p[j][k];
if(y==n-1)x++,y=0;
}
}
s+=pow(-1,i)*p[0][i]*solver(B,n-1);
}
return s;
}
int main()
{
int n,i,j;
do
{
printf("请输入阶数:");
scanf("%d",&n);
}
while(n<=0);
double A[n][n],*p[n];
for(i=0;i<n;i++)p[i]=A[i];
for(i=0;i<n;i++)
{