-
c程序求行列式的值的问题?5
#include <stdio.h> #include <math.h> #include <stdlib.h> /*a为行列式,n为行列式的阶*/ int f(int **a,int n) { int i,j,k; int len;/*子行列式的阶*/ int s=0; len = n-1; /*按照定义,初始化一个子行列式数组的空间*/ int **p = (int **)malloc(sizeof(int *)*len); for(i=0;i<len;i++) *(p+i) = (int *)malloc(len); /*阶为2,按照定义计算*/ if( 2==n ) return a[0][0]*a[1][1]-a[1][0]*a[0][1]; for( k=0; k<n; k++) { for(i=0;i<len;i++) for(j=0;j<len;j++) { if(i<k) *(*(p+i)+j) = a[k][j+1];/*初始化子行列式的值*/ if(i>k) *(*(p+i)+j) = a[k+1][j+1]; } s += (int)pow(-1,i+j) * f(p,len);/*递归计算*/ } free(p); return s; } void main() { int a[3][3] = {1,2,4,5,7,9,12,11,8}; int **p = a; printf("%d",f(p,3)); }
思路很清楚,就是按照定义求值,但调试总是出错,请大家指点下
问题补充:
一楼的童鞋,这里是二维数组,我想要体现维度
问题补充:
主要是要调试成功,并且有结果2009年10月24日 16:31
2个答案 按时间排序 按投票排序
-
采纳的答案
自己看吧:
#include <stdio.h> #include <math.h> #include <stdlib.h> /*a为行列式,n为行列式的阶*/ int f(int **a,int n) { int i,j,k; int len;/*子行列式的阶*/ int s=0; len = n-1; /*按照定义,初始化一个子行列式数组的空间*/ int **p = (int **)malloc(sizeof(int *)*len); for(i=0;i<len;i++) p[i] = (int *)malloc(sizeof(int)*len); /*阶为1,按照定义计算*/ if( 1==n ) return a[0][0]; for( k=0; k<n; k++) { for(i=0;i<len;i++) for(j=0;j<len;j++) { if(i<k) p[i][j] = a[i][j+1];/*初始化子行列式的值*/ if(i>=k) p[i][j] = a[i+1][j+1]; } s += (int)pow(-1,k) * a[k][0]* f(p,len);/*递归计算*/ } for(i=0;i<len;i++) free(*(p+i)); free(p); return s; } int main() { int i; int a[3][3] = {1,2,4,5,7,9,12,11,8}; int **p = (int **)malloc(sizeof(int *)*3); for(i=0;i<3;i++) p[i] = a[i]; printf("%d",f(p,3)); free(p); }
2009年10月26日 16:27
相关推荐
本文将深入探讨一个由C语言编写的求解行列式值的程序,该程序不仅体现了C语言的强大功能,还展示了如何通过递归算法计算行列式的值。 ### 行列式的概念与重要性 行列式是线性代数中的一个重要概念,它是一种特殊的...
首先,该程序定义了一个名为`hanglieshi`的类,其中包含了一个名为`HLS`的方法用于计算行列式的值。该方法接收一个二维整型数组作为参数,表示行列式的各个元素。 ```java public class hanglieshi { public int ...
### C#程序实现任意行列式的值的计算 #### 一、程序概述 本文将详细介绍一个使用C#编写的控制台应用程序,该程序能够计算任意大小的行列式的值。行列式在数学领域有着广泛的应用,特别是在线性代数中。通过本程序...
本资源提供了四种不同的C语言程序,用于计算行列式的值。这些程序都使用了高斯消元法来计算行列式,但是在消元之前,先把绝对值最大的元素进行适当的位置调整。 程序1: 第一个程序使用了数学库中的fabs函数来计算...
行列式是线性代数中的一个基本概念,它在矩阵理论、方程组求解、特征值问题等领域有着广泛的应用。VB(Visual Basic)是一种面向对象的编程语言,由微软公司开发,它提供了友好的图形用户界面(GUI)设计工具和强大...
### 行列式按键扫描程序(汇编) #### 关键知识点概述 在计算机硬件与软件交互领域,按键扫描是实现用户输入的关键技术之一。对于资源有限的系统,如早期的微处理器,采用行列式按键扫描可以高效地检测多个按键...
本篇文章将详细讲解如何使用C/C++编程语言,通过递归算法来求解任意阶数矩阵的行列式,并提供一个简单的程序示例。 行列式是一个在数学中用于表示矩阵特性的数值,它具有很多有用的性质,如能够判断矩阵是否可逆,...
本项目涉及的是在Linux环境下,通过编程实现高斯列主元消去法来求解行列式的值。这是一种经典的数值计算方法,常用于解决线性方程组和计算矩阵的行列式。 高斯列主元消去法是一种逐步将系数矩阵转化为上三角形或下...
行列式是线性代数中的一个基本概念,它在解决线性方程组、确定矩阵的逆、计算特征值和特征向量等问题中扮演着重要角色。VB(Visual Basic)是一种常用的编程语言,用于开发图形用户界面(GUI)应用程序。本项目是一...
行列式是衡量一个方阵性质的关键指标,它在解线性方程组、判断矩阵可逆性以及计算矩阵特征值等方面扮演着至关重要的角色。对于一个\(n \times n\)的方阵\(A\),其行列式\(\det(A)\)的值可以揭示矩阵的几何意义和代数...
最后,`main`函数中计算了矩阵a的行列式值(determinant,记为y),如果行列式值为0,则矩阵没有逆,因为非奇异矩阵的行列式必须不为零。如果行列式存在,那么可以通过将矩阵b除以行列式值得到逆矩阵,并输出结果。 ...
行列式(Determinant)是一个重要的数学概念,通常用于线性代数领域,它对于解决线性方程组、求解特征值问题等具有重要意义。行列式的计算方法有很多种,其中一种常用的方法是通过高斯消元法将原矩阵转换为上三角...
行列式计算程序是计算机科学中一个基础且重要的概念,它主要应用于线性代数领域。...实际编写代码时,你可能会遇到各种问题,但通过不断学习和实践,你将能够掌握这些技能并成功编写出一个完整的行列式计算程序。
行列式是一个标量值,用于表示矩阵的特定特性。对于一个n阶方阵A,其行列式记为det(A)或|A|,它是通过一系列加减乘法操作计算得到的。行列式的计算通常采用拉普拉斯展开或 cofactor 扩展的方法。在Visual C# 2010 ...
这种方法可以将某些问题转换为已知的行列式类型,便于求解。 8. **数学归纳法**: 对于与阶数有关的行列式,可以使用数学归纳法证明。首先验证基础情况,即n=2的情况,然后假设n=k时的结论成立,推导n=k+1时的情况...
在这个场景中,我们关注的是利用线性代数工具包来求解逆矩阵和计算行列式的值,这些都是线性代数中的核心概念。 首先,让我们详细了解一下行列式。行列式是一个与方阵相关联的标量值,对于一个n阶方阵A,其行列式记...
4. **结果展示**:计算完成后,将行列式的值显示在一个Label或者新的TextBox中。 5. **错误处理**:考虑用户可能输入非数字字符或非方阵的情况,需要添加适当的错误检查和处理机制,如提示用户输入有效数据。 在...
行列式是线性代数中的一个基本概念,它在解决线性方程组、研究矩阵性质、计算几何等问题中起到至关重要的作用。本教程将详细阐述如何使用C++编程语言来实现行列式的计算,尤其强调如何处理分数形式的输出。 首先,...
标题“hanglieshi.rar_hanglieshi_行列式_行列式计算”暗示我们讨论的是一个与行列式计算相关的资源包,可能包含一个软件或程序,用于快速、直接地计算行列式的值。这种工具对于处理大型或复杂的行列式非常有帮助,...
标签“解行列式”表明这个程序专注于行列式的求解,对于学习线性代数的学生或者需要处理矩阵问题的专业人士来说,这样的工具非常实用。它可以帮助快速准确地计算行列式,节省大量手动计算的时间,提高工作效率。 总...