⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 soj2921高斯消元法求解行列式.cpp

📁 一些ACM题目的解答,主要是soj和poj的
💻 CPP
字号:
#include<stdio.h>
#include<math.h>

double mat[9][9];

int main(void)
{
    int n,i,j,k,h;
    double bei,sum;
    while(scanf("%d",&n)==1) 
    {
        sum=1;

        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                scanf("%lf",&mat[i][j]);
            }
        }
        for(i=0;i<n-1;i++)
        {
            for(j=i+1;j<n;j++)
            {
                if(fabs(mat[i][i]-0)<0.00000000001)
                {
                    for(k=j;mat[k][i]==0&&k<n;k++);
                    if(k==n)
                        break;
                    for(h=i;h<n;h++)
                    {
                        double temp;
                        temp=mat[k][h];
                        mat[k][h]=mat[i][h];
                        mat[i][h]=temp;
                    }
                }
                bei=mat[j][i]/mat[i][i];
                for(k=i;k<n;k++)
                {
                    mat[j][k]-=mat[i][k]*bei;
                }
            }
        }
/*        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
                printf("%d\t",mat[i][j]);
            printf("\n");
        }*/
        for(i=0;i<n;i++)
            sum*=mat[i][i];
        printf("%.0lf\n",fabs(sum)+0.0000000001);
    }
    return 0;
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -