zoukankan      html  css  js  c++  java
  • 行列式求值

    上代码:(看注释就行)

    #include<stdio.h>
    #include<stdlib.h>
    #include<iostream> 

    #define
    MAX 11//题目给的是10乘以10的,所以搞个11没毛病 int Fun(int n, int a[MAX][MAX] );//提前声明函数体,下位才是函数正文 int main() { int n = 0; int i=0,j=0;//n为行列数,i为行,j为列 int a[MAX][MAX] = {{0}};//矩阵初始化为0(好像没啥用QWQ) scanf("%d",&n);//输入n for( i = 0; i < n; i++)   for( j = 0; j < n; j++)   scanf("%d",&a[i][j]); //输入行列式各个元素   printf("%d ",Fun(n,a));//输出行列式值 return 0;
    }
    int Fun(int n,int a[MAX][MAX])//一个递归求值 { int i=0,j=0,c=0;//学过行列式的人知道,一个行列式的值是由行列式余子式的值再考虑正负号相加得来的 int b[MAX][MAX]={{0}}; int p=0, q=0; int sum=0; if(n==1) return a[0][0]; for(i=0;i<n;i++)//此递归函数模拟的是递归求各个函数的余子式,以下为求余子式的过程 { for(c=0;c<n-1;c++) { if(c<i)//仔细看,这四行是筛去某一元素所在行和列的一个过程,c<i就是判断是不是在这一行 p=0; else p=1; for(j=0;j<n-1;j++) { b[c][j]=a[c+p][j+1]; } } if(i%2==0)q=1;//判断正负号 else q=(-1); sum+=a[i][0]*q*Fun(n-1,b); } return sum;//返回求的值 }

     完结撒花✿✿ヽ(°▽°)ノ✿

  • 相关阅读:
    Qt调用外部程序QProcess通信
    QT错误:collect2:ld returned 1 exit status
    ARM编译空间属性(转)
    深入C语言内存区域分配(进程的各个段)详解(转)
    Linux系统的组成和内核的组成
    C语言中,头文件和源文件的关系(转)
    Ubuntu安装samba服务器
    2018年应该做的事
    生活经历1
    学习笔记
  • 原文地址:https://www.cnblogs.com/lbssxz/p/10698729.html
Copyright © 2011-2022 走看看