首页 > 其他 > 详细

行列式求值

时间:2019-04-13 10:19:44      阅读:171      评论:0      收藏:0      [点我收藏+]

上代码:(看注释就行)

#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\n",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;//返回求的值 }

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

行列式求值

原文:https://www.cnblogs.com/lbssxz/p/10698729.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!