在线做托福的网站怎么在百度上面打广告
我不明白为什么这个程序产生矩阵的错误行列式值。这个程序使用函数func()的递归调用,该函数将参数矩阵转换为次要函数,然后最终简化为单个元素。请帮忙,这段代码中有什么错误..?C:递归定义的程序来计算矩阵的行列式
#include
#include
void display_(int arr[][4])
{
int i,j;
putchar('\n');
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
printf("%d\t",arr[i][j]);
printf("\n");
}
}
int func(int arr[][4],int i,int j,int order)
{
if(order==1)
return arr[0][0];
return(pow(-1,i+j)*arr[i][j]*func(arr,i+1,j+1,order-1));
}
int main()
{
int i,j,matrix[4][4];
printf("\nEnter the elements to the matrix : ");
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%d",&matrix[i][j]);
display_(matrix);
printf("\nDeterminant : %d",func(matrix,0,0,4));
}
+1
标签应该是C而不是C++。代码中没有C++,你不会在C++中这样写它。 –
+0
此外,在这样的情况下,如果你只用一个'return'和三元运算符,'func'会更清晰。 –
+1
对不起,先生你说得对.. –