解四阶行列式

#include<iostream>
#include<cstdio>
using namespace std;

int three(int a[])
{
    return a[1]*a[5]*a[9]+a[2]*a[6]*a[7]+a[3]*a[4]*a[8]-
    a[3]*a[5]*a[7]-a[6]*a[8]*a[1]-a[2]*a[4]*a[9];
}
int main()
{
    int x[5][5],a[10],s=0;
    
    for(int i=1;i<5;i++)
    {
        for(int j=1;j<5;j++)
        {
            cout<<"X"<<i<<j<<"=";
            cin>>x[i][j];
        }
        cout<<endl;
    }
        
    for(int i=1;i<5;i++)
    {
        int idx=0;
        for(int j=2;j<5;j++)
            for(int k=1;k<5;k++)
                if(k!=i)
                    a[++idx]=x[j][k];
        if(i%2==1)
            s+=x[1][i]*three(a);
        else
            s-=x[1][i]*three(a);        
    }
    
    for(int i=1;i<5;i++)
    {
        for(int j=1;j<5;j++)
        {
            cout<<x[i][j];
            if(j!=4)
                cout<<" ";
        }
        if(i==3)
            cout<<"="<<s;
        cout<<endl;
    }
    return 0;    
}
原文地址:https://www.cnblogs.com/NDKY9/p/7705478.html