满意答案

玻璃鞋syt

2013.06.30

采纳率:49%    等级:11

已帮助:4945人

输入:

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

{

printf("\nPlease input line %d:",row+1);

for(col=0;col

scanf("%lf",&array[row][col]);

}

}

void showarray(int n)

{

int row,col;

printf("\nA=");

for(row=0;row

{

for(col=0;col

printf("\t%f",array[row][col]);

printf("\n");

}

}

double getresult(int n)

{

double temp,result=1.0;

int switchtime=0,flag=0;

int row,nextrow,col,stemp;

for(row=0;row

{

nextrow=row+1;

if(array[row][row]==0)/* 开始处理第一列,如果行列式第一行第一个数为零,要交换行 */

{ while(array[nextrow][row]==0)

{

nextrow++; /* 如果行列式第二行第一个数为零,行增加继续寻找非零数值的行 */

if(nextrow==n)/* 如果遍历完行列式行列式第一列元素都为零,退出while循环 */

{ flag=1;

break;

}

}

if(flag==1) /* 退出while循环后回到for(row=0;row

continue; /* 从array[row][row]==0知列也相应加1,开始处理第二列 */

switchtime++; /* 每交换一次行,行列式符号变化1次,统计变化次数 */

for(col=0;col

{

stemp=array[row][col];

array[row][col]=array[nextrow][col];

array[nextrow][col]=stemp;

}

}

for(nextrow=row+1;nextrow

{ /* 类似高斯消去法,消第一行下各行第一列数值到零*/

temp=array[nextrow][row]/array[row][row];

for(col=0;col

array[nextrow][col]+=-temp*array[row][col];/* 化行列式为上三角行列式形式 */

}

}

showarray(n);

for(row=0;row

result*=array[row][row];

if(switchtime%2)

return -result;

else

return result;

}

00分享举报

c语言实验作业在dev蜗居的思路,关于C语言的问题:如何用C语言实现n阶行列式和矩阵的值...相关推荐

  1. c语言实验作业在dev蜗居的思路,C语言程序设计实验(共5篇)

    int search_min(int a,int b,int c) { if(a 运行结果: ⑸ 编写一个程序,先定义一个将字符大写.小写和数字进行分类的带参数宏,然后对从键盘输入的一系列字符进行分类 ...

  2. 北京电大c语言实验作业二,大学大一c语言程序设计实验室上机题全部代码答案(实验报告).doc...

    大学大一c语言程序设计实验室上机题全部代码答案(实验报告).doc C语言实验报告实验1-1:helloworld程序:源代码:#includemain(){printf("hellowor ...

  3. 池州学院c语言实验作业答案,池州学院《C语言程序设计》实验教学大纲.doc

    池州学院<C语言程序设计>(2011002)实验教学大纲 适用范围:非计算机理工类本科各专业 总学时:18 (2010年6月修订)New 一.教学目的: 本大纲是针对理工科非计算机各专业的 ...

  4. 池州学院c语言实验作业答案,池州学院实验报告3.doc

    池州学院实验报告3 池州学院实验报告 姓 名_ 余飞 学 号 100712223 专 业 10级资环 (2)年级 大一 成绩___________ 课程名称:c语言程序设计 教师签字_________ ...

  5. 北京电大c语言实验作业二,安徽大学C语言实验平台作业答案

    实验三 C基本数据类型及运算 1. 编程:根据需要定义相关变量,键盘输入10.0.20.6.5.0三个实数分别赋给相关三个变量,输出该3个变量的和s.乘积p和平均值a. 2. 编程:输入球的半径,计算 ...

  6. c语言期末作业自己设计个小程序,帮看一个小程序吧,c语言期末考…求求各位大神了...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #define max 2014 typedef struct stack { int data[max]; int ...

  7. c语言求20项FBNC,大学C语言 结业作业 暗影行者

    C语言实验作业报告 -hongXkeX 实验1成绩转换为相应的等级 [实验目的] 1.熟练运用输入,输出语句. 2.练习简单switch语句 [实验内容] 对于给定的一个百分制成绩,输出用ABCDE ...

  8. c语言实验程序,C语言实验程序

    <C语言实验程序>由会员分享,可在线阅读,更多相关<C语言实验程序(11页珍藏版)>请在人人文库网上搜索. 1.P113:6 #include void main() floa ...

  9. 金陵科技学院c语言实验报告册,金陵科技学院C语言实验册

    金陵科技学院C语言实验册 学 生 实 验 报 告 册 (理工类) 课程名称: C语言程序设计实验 专业班级: 学生学号: 学生姓名: 所属院部: 指导教师: 20 --20 学年 第 学期 金陵科技学 ...

最新文章

  1. Oracle审计--AUD$占用空间较大处理方案
  2. Spring Boot(四):利用devtools实现热部署,改动代码自动生效
  3. git仓库相关知识01-安装和基本命令
  4. 使用协同过滤进行众包服务的工人工作自动化推荐
  5. 余玄相似度,TF-IDF
  6. 秒杀多线程第八篇 经典线程同步 信号量Semaphore
  7. Effective Java之将局部变量的作用域最小化(四十五)
  8. VS2013 MFC基于对话框编程(创建工程)
  9. 【渝粤教育】电大中专电大中专职业健康与安全考试考核试题作业 题库
  10. 马化腾、李彦宏、雷军,程序员国服三强谁的编程能力最牛?
  11. postfix邮件队列管理
  12. PAT (Basic Level) Practice1026 程序运行时间
  13. 以下内容为Stackoverflow上整理以作纪录
  14. 【安装包】VC++6.0
  15. 苹果发布会新品曝光 这款软件肯定用得上
  16. 计算机毕业设计之SSM网上订餐系统
  17. Qt使用libmodbus
  18. oracle plm 文件系统,ORACLE-PlM管理方案(标准材料).ppt
  19. latch详解——转自itpub精华帖(引)
  20. 无法使用tftp下载Linux内核到开发板,总是显示TTTTTTTTT的原因

热门文章

  1. Mybatis从入门到精通(全)
  2. 电商小程序实战教程-需求分析
  3. python实现高校教务管理系统_Python实现新版正方教务系统爬虫
  4. 2023计算机毕业设计SSM最新选题之java住宅小区停车管理系统494ak
  5. 投影仪显示服务器不能连接不上,极米投影仪常见故障和自助解决方案?
  6. 部署本地thinkphp6(iis+php7)
  7. Apache的JK插件
  8. 莎士比亚数据集_如何使用深度学习写莎士比亚
  9. 解决go数据表查询结构体对应字段null问题(sqlx converting NULL to string is unsupported)
  10. 面向对象——依赖倒转原则和里氏代换原则