найти определитель пользовательской матрицы, используя рекурсию - PullRequest
0 голосов
/ 19 июня 2019

Так что я надеялся создать программу на 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...