用C语言解决:求任意阶(n阶)矩阵的行列式

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 21:24:02
用C语言解决:求任意阶(n阶)矩阵的行列式

用C语言解决:求任意阶(n阶)矩阵的行列式
用C语言解决:求任意阶(n阶)矩阵的行列式

用C语言解决:求任意阶(n阶)矩阵的行列式
很遗憾,上面匿名的程序不正确.
比如n=2 输入:
3---7
2---1
得出错误结果.
而当输入n=3
0---1---3
3---0---2
5---2---0
时也会得出错误结果.
错误的原因有2:
1 是数据类型不对,匿名的程序是设定输入都是整数int,显然按照行列式的定义结果肯定是整数,但是他程序中使用了整型数的除法,结果是取整整数,虽然他使用了类型强制转换,但结果显然不同,有误差而且有时候这个误差很大形成错误.
2 是算法有点问题.小可很欣赏匿名的算法思路,简洁明快.不过有相当缺陷,这在程序中注明.
下面的程序是在匿名的程序思路上改写的.考虑到数据类型和精确度问题,程序中行列式数据使用double型.由于tc和win-tc是16位编辑器,对float型和double型数据支持不好,所以程序是在32位编辑器Dev-c++下调试并通过的.
本题的一个完整的c程序如下,程序在Dev-c++下都调试通过,结果正确.
/* 用C语言解决:求任意阶(n阶)矩阵的行列式值 */
#include
#include
void getarray(int n);
void showarray(int n);
double getresult(int n);
double array[10][10];/*设矩阵不超过10阶,可更改*/
int main()
{
int n;
double result;
printf("\nPlease input the Array size n:");
scanf("%d",&n);
getarray(n);
showarray(n);
result=getresult(n);
printf("\nResult=%f\n",result);
system("pause");
return 0;
}
void getarray(int n)
{
int row,col;
for(row=0;row

用C语言解决:求任意阶(n阶)矩阵的行列式 C语言编程 ,求任意阶矩阵的乘法 C语言怎样输入一个行列可变矩阵 行列未定 任意矩阵 从键盘输入是我没说清楚,我要的矩阵是为以后计算加 ,乘 作基础的,不能释放麻烦用这种方法写个矩阵相加吧,还是要任意输入行列的 通 c语言输出5乘5阶的矩阵,求两条对角线上行列下标为偶数各元素之积 用C语言编程解决:在 n 行 n 列的矩阵中,每行都有最大的数,求这 n 个最大数中的最 求C语言的从1-55的矩阵排列组合算法要求写出完整的代码.行列都是6 N阶行列 实现3行3列矩阵的转置,即行列互换.(C语言)/*------------------------------------------------------ 【程序改错】--------------------------------------------------------功能:实现3行3列矩阵的转置,即行列互换.------- 一个3阶矩阵,|A|=0.5,求A逆矩阵的公式行列式是行列式子不是求a 编写一个lingo代码或C语言程序编写一个lingo或C语言程序,要求输入一个七阶(或N阶)矩阵,从矩阵每行任意选出一个数,要求这7个(或n个)数的和最小.比如说选了第一行第一列的那个数,第二 matlab 用矩阵某元素的行列号定义另外一个矩阵 使得知道行列号m n时 即可知道mn对应的矩阵 n个8*8矩阵,用它们构成一个指定行列(比如说320*240)的大矩阵,用matlab实现8*8的矩阵都是不同的 有两个矩阵a和b,均为3行4列.求两个矩阵之和.重载运算符“+”,使之能用于矩阵相加.如c=a+b.改造上述程序,使其能够表示任意行列的矩阵,并能执行c=a+b.用运算符重载写程序,我是新手不会写,请 n阶矩阵和n阶方阵的区别?一回事吧?矩阵只有行列个数相等时才称为阶吧 用C语言写一个两个矩阵相乘的函数编写一个m*p阶与p*n阶阵想乘的函数,要求用指针做函数的形参,数组名做为实参,在主函数中任意输入两个m*p与p*m的矩阵,然后调用该函数做矩阵相乘运算,并打 如何使用C语言输出一个m*n的矩阵(m和n是任意数字,不限定大小. 关于C语言的问题:如何用C语言实现n阶行列式和矩阵的值 已知行列式求逆矩阵,怎么求?已知3阶方阵A的行列是|A|=3,则|(aA)^-1|=?