C语言求行列式的值
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <windows.h> #define NUM 3 int Fun(int n, int a[NUM][NUM]); /*函数声明*/
int main()
{ int i = , j = ; /*i,j分别表示行与列*/
int a[][] = { {,,},{,,},{,,} }; /*定义行列式*/
printf("%d\n", Fun(NUM, a));
system("pause");
return ;
} /*以下为计算行列式值的递归函数*/
int Fun(int n, int a[NUM][NUM])
{
static int b[NUM][NUM] = { { } }; /*定义数组b并初始化*/
int i = , j = , sum = ; /*i,j为行与列,sum为行列式的值*/
int x = , c = , p = ; /*用x判断加与减,c,p为中间变量*/
if (n == )
return a[][]; for (i = ; i < n; i++) /*此处大循环实现将余子式存入数组b中*/
{
for (c = ; c < n - ; c++)
{
for (j = ; j < n - ; j++)
{
if (c < i) { /*借助c判断每行的移动方法*/
p = ; /*当p=0时,行列式只向左移,即消去对应的第一列的数*/
}
else { /*否则行列式左移后再上移*/
p = ;
}
b[c][j] = a[c + p][j + ];
}
}
if (i % == ) { /*i+j(此时j=0,故只考虑i)为偶数,加法预算*/
x = ;
}
else { /*i+j为奇数,减法运算*/
x = (-);
}
sum += a[i][] * Fun(n - , b) * x; /*计算行列式的值*/
}
return sum; /*将值返回*/
}
C语言求行列式的值的更多相关文章
- C++/python求哈希值(SHA256)
发现一个很奇怪的现象: python语言求哈希值所用时间竟然比C++少: C++ code 1 #include "stdafx.h" 2 #include <windows ...
- 《用C++语言编写一个程序,求PI的值》
//编写一个C++程序求PI的值 /* PI=16arctan(1/5)-4arctan(1/239) 其中arctan用如下形式的极数计算: arctan=x-(x^3/3)+(x^5/7)-(x^ ...
- c语言求平面上2个坐标点的直线距离、求俩坐标直线距离作为半径的圆的面积、递归、菲波那次数列、explode
#include <stdio.h> #include <math.h> #include <string.h> char explode( char * str ...
- 说说用C语言求根的那些事儿
C语言--求根:计算机只识别0和1,那么问题来了,作为计算工具如何解决数学问题?其实,计算机是死东西,都是程序员用计算机的的思维去加数学公式计算数学题的.听起来好高端的样子,其实啊,也就那么回事儿, ...
- Swift语言指南(六)--可选值
原文:Swift语言指南(六)--可选值 在值可能不存在的情况下使用可选值(optional), 可选值是: · 存在一个值,这个值等于 x 或 · 不存在任何值 注: 在 C 和 Objective ...
- C#程序计算N阶行列式的值及N元一次方程组
C#程序计算N阶行列式的值及N元一次方程组 用了挺长时间自行完成了C#程序计算N阶行列式的值及N元一次方程组.由于自己没有在网上查阅其他资料,所以只能硬着头皮用最朴素的思想和基础的算法进行编程.在给出 ...
- c语言main函数返回值、参数详解(返回值是必须的,0表示正常退出)
C语言Main函数返回值 main函数的返回值,用于说明程序的退出状态.如果返回0,则代表程序正常退出:返回其它数字的含义则由系统决定.通常,返回非零代表程序异常退出. 很多人甚至市面上的一些书籍,都 ...
- Swift语言指南(七)--语言基础之布尔值和类型别名
原文:Swift语言指南(七)--语言基础之布尔值和类型别名 布尔值 Swift有一个基本布尔类型,叫做布尔(bool),布尔值又称逻辑值(logical),因为它只能为真(true)或假(false ...
- hdu3183 rmq求区间最值的下标
两个月前做的题,以后可以看看,是rmq关于求区间最值的下标 /* hdu3183 终点 给一个整数,可以删除m位,留下的数字形成一个新的整数 rmq 取n-m个数,使形成的数最小 */ #includ ...
随机推荐
- EJB到底是什么?
EJB到底是什么? 1. 我们不禁要问,什么是"服务集群"?什么是"企业级开发"? 既然说了EJB 是为了"服务集群"和"企业 ...
- 剑指offer 02:替换空格
题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 解题代码 public cla ...
- Microsoft Visual Studio已停止工作
问题:今天在安装Visual Studio时,提示“Visual Studio installer 已停止工作” 解决办法:卸载原有的 .net framework,在微软官网下载 .net fra ...
- ES5 map循环一大坑:循环遍历竟然出现逗号!
一.map map大法好 这里需要解释一下Map和forEach的区别 一般来说需要返回值时使用Map,而只需要循环的使用forEach map循环常用的一些方法 /********* ES6 *** ...
- 《深入理解Nginx:模块开发与架构解析》读书笔记
1.nginx的特点:快.扩展性强.可靠性强.内存低消耗.支持高并发.热部署.开源免费 2.nginx由master进程来管理多个(CPU数)worker进程 3.配置按功能分,有4类: 1)用于调试 ...
- Kotlin 基础语法
Kotlin 文件以 .kt 为后缀. 包声明 代码文件的开头一般为包的声明: package com.runoob.main import java.util.* fun test() {} cla ...
- yii2框架中获取添加元素的主键
控制器层: 模型层: 返回结果是:
- string部分方法
1.string.lastIndexOf() lastIndexOf 是从string末尾查找,但是返回值仍是首部的位置值. 2.string.replace() 放一个正则匹配会全部替换. 3.st ...
- string转数组, 数组转ist, list转数组, 数组转string
private string OrderBonds(string bonds) { string[] lists = bonds.Split(','); List<string> newL ...
- zk observer 节点
zk 集群中有3种节点:leader,follower,observer,其中 observer 节点没有投票权,即它不参与选举和写请求的投票. 比较 Follower 和 Observer 的代码: ...