IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言实现行列式计算 -> 正文阅读

[C++知识库]C语言实现行列式计算

C语言实现行列式计算

前言

行列式的计算有多种方法,其中按行(列)展开法最为直观,因此也最容易编写为程序。本文使用C语言,利用函数的递归,计算任意阶行列式的值。注意:本程序中,在计算行列式之前,需输入行列式的阶数。
C语言在数学计算领域有诸多不便之处,例如数组的长度不可更改,这一点对于行列式的计算来说是极不方便的,因为余子式的阶数比原行列式的阶数要小,而在递归的过程中涉及到数组的长度。为此,设立两个函数,第一个函数DET为计算的主要部分,第二个函数Minor专门用于计算余子式的值,而第二个函数中会调用第一个函数。


代码展示

代码如下(示例):


#include <stdio.h>
#include <math.h>
#define MAX 20  //最大计算阶数,可以更改

//两个函数的声明
int DET(int arr1[MAX][MAX], int n);
int Minor(int arr1[MAX][MAX], int i, int n);


int DET(int arr1[MAX][MAX], int n)
{
	int i, M, sum = 0;//i是第一行的列指标,M是余子式的值,sum是行列式的计算值
	if (n == 1)//一阶行列式直接得出结果
		return arr1[0][0];
	else if (n > 1)
	{
		for (i = 0; i < n; i++)//按第一行展开
		{
			M = Minor(arr1, i, n);
			sum += pow(-1, i + 2) * arr1[0][i] * M;
		}
	}
	return sum;
}


int Minor(int arr1[MAX][MAX],int i,int n)
{
	int  j, k,result;
	int arr2[MAX][MAX];
	
	//以下为构造余子式的过程。由于C语言的特性,这个过程会比较复杂,需要观察余子式与原行列式的关系。
		for (j = 0; j < n - 1; j++)
		{
			for (k = 0; k < n - 1; k++)
			{
				if (k < i)
					arr2[j][k] = arr1[j + 1][k];
				else if (k >= i)
					arr2[j][k] = arr1[j + 1][k + 1];
			}
		}
		
	return DET(arr2, n - 1);//构造完后,余子式是一个新的行列式,返回DET函数进行计算。
}


int main() 
{
	int arr1[MAX][MAX];
	int a,b,n;
	printf("请输入行列式阶数:");
	scanf_s("%d", &n);
	printf("请输入行列式:\n");
	for (a = 0; a < n; a++) {
		for (b = 0; b < n; b++) {
			scanf_s("%d", &arr1[a][b]);
		}
	}

	printf("%d", DET(arr1, n));
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-29 11:27:16  更:2021-07-29 11:27:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/29 15:54:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码