c - 使用递归找到用户定义矩阵的行列式
问题描述
所以我希望制作一个 C 程序来找到“用户定义”矩阵的行列式。矩阵可以是任何顺序(比如 2*2 或 3*3 或 4*4.....n*n)我尝试制作一个简单的程序来找到任何 2*2 或 3*3 矩阵的行列式有两件事我需要帮助
纠正程序中的逻辑错误,因为 2*2 矩阵的行列式错误。并将递归添加到程序中,以便我们可以找到无限矩阵的行列式。
#include<stdio.h>
int main()
{
int a,b;
printf("enter the rows and columns of matrix\n");
scanf("%d%d",&a,&b);
int c[a][b];
printf("Enter Elements In The Matrix:\n");
for(int i=0;i<b;i++)
{
for(int j=0;j<a;j++)
{
scanf("%d",&c[i][j]);
}
}
printf("\nYour Matrix Is:\n");
for(int p=0;p<b;p++)
{
for(int k=0;k<a;k++)
{
printf("%d\t",c[p][k]);
}
printf("\n\n");
}
if(a==b)
{
printf("\nDeterminent Of Marix Is: ");
int D1=0,D2=0,D3=0,D;
for(int n=0;n<a;n++)
{
for(int m=0;m<b;m++)
{
if(n==0 && m==0)
{
D1=c[n][m]*(c[n+1][m+1]*c[n+2][m+2] - c[n+2][m+1]*c[n+1][m+2]);
}
if(n==0 && m==1)
{
D2=c[n][m]*(c[n+1][m-1]*c[n+2][m+1] - c[n+2][m-1]*c[n+1][m+1]);
}
if(n==0 && m==2)
{
D3=c[n][m]*(c[n+1][m-2]*c[n+2][m-1] - c[n+2][m-2]*c[n+1][m-1]);
}
}
}
D=D1-D2+D3;
printf("%d\n",D);
}
else
{
printf("The Matrix Is Not A Square Matric So The
Determinent Cannot Be Calculated\n");
}
return 0;
}
解决方案
推荐阅读
- mysql - 带有Spring引导的Docker中的Mysql连接错误
- css - 如何使用 webpack / postcss @import '../Components/**/_partial.css' 将所有 CSS 文件导入到子目录中;
- laravel - Laravel Themes 真的在使用 Vue Js 吗?
- sockets - UNIX 域 SOCK_DGRAM 客户端 - 连接被拒绝
- python - 从具有负值和正值的熊猫数据框中绘制
- algorithm - 已解决 - 从受最大化约束的矩阵中查找逐列最大元素
- sql - 此查询提供错误。你能提供一个答案吗?
- react-native - 如何在 React-native 中使用 react-native-image-picker 和 Redux
- prolog - 在序言中查找列表总和显示总和的因素,而不是最终总和结果
- python-3.x - 从子列表项中提取数值