计算行列式的值
来源:互联网 发布:王宝强离婚 知乎 编辑:程序博客网 时间:2024/04/30 03:58
#include <stdio.h>#include <stdlib.h>#define MAX 9 /*定义最大为9阶行列式*/int Fun(int n, int a[MAX][MAX] ); /*函数声明*/int main(){ int n = 0; /*初始化阶数n*/ int i = 0, j = 0; /*i,j分别表示行与列*/ int a[MAX][MAX] = {{0}}; /*定义行列式*/ scanf("%d",&n); /*读入阶数*/ while( n != 0) /*输入为0时退出程序*/ { for( i = 0; i < n; i++) /*此处2次循环将行列式存入数组中*/ { for( j = 0; j < n; j++) scanf("%d", &a[i][j]); } printf("%d\n", Fun( n, a ) ); scanf("%d", &n); } return 0;}/*以下为计算行列式值的递归函数*/int Fun( int n, int a[MAX][MAX] ){ int b[MAX][MAX] = {{0}}; /*定义数组b并初始化*/ int i = 0, j = 0, sum = 0; /*i,j为行与列,sum为行列式的值*/ int x = 0,c = 0,p=0; /*用x判断加与减,c,p为中间变量*/ if(n == 1) return a[0][0]; for(i = 0; i < n; i++) /*此处大循环实现将余子式存入数组b中*/ { for(c = 0; c < n-1; c++) { for(j = 0; j < n-1; j++) { if (c < i) /*借助c判断每行的移动方法*/ { p = 0; /*当p=0时,行列式只向左移,即消去对应的第一列的数*/ } else /*否则行列式左移后再上移*/ { p = 1; } b[c][j] = a[c+p][j+1]; } } if(i % 2 == 0) /*i+j(此时j=0,故只考虑i)为偶数,加法预算*/ { x = 1; } else /*i+j为奇数,减法运算*/ { x = (-1); } sum += a[i][0] * Fun(n - 1, b ) * x; /*计算行列式的值*/ } return sum; /*将值返回*/}
阅读全文
1 0
- 计算行列式的值
- 计算行列式的值
- GSL计算矩阵的行列式值
- GSL计算矩阵的行列式值
- 用递归方法计算行列式的值
- 对行列式的计算
- 行列式的定义计算
- 矩阵行列式的计算
- 行列式的计算
- 计算行列式值
- 行列式计算
- 行列式计算
- 行列式计算
- 高等代数中行列式的计算总结
- 行列式的定义及简单计算
- kA*与(kA)*的行列式计算
- VB.net计算二维数组的行列式
- 行列式计算(模拟递归)
- linux下常用网络操作(重点)
- bzoj 1800: [Ahoi2009]fly 飞行棋
- Qt-----GetDesktop
- java-链式编程
- 最接近神的人 reverse
- 计算行列式的值
- 冒泡排序法(BubbleSort)——交换类排序法(java实现)
- TSL1401使用方法和心得
- 学习笔记2017.07.11-day8,pm-HTML实例练习
- C语言移位操作
- 基于视频的目标检测
- bzoj1913: [Apio2010]signaling 信号覆盖
- 检测com类中CLSID为{F9364159-6AED-4F9C-8BAF-D7C7ED6160A8}的组件时失败,错误80040154
- 设计模式——建造者模式