c语言实验作业在dev蜗居的思路,关于C语言的问题:如何用C语言实现n阶行列式和矩阵的值...
满意答案
玻璃鞋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阶行列式和矩阵的值...相关推荐
- c语言实验作业在dev蜗居的思路,C语言程序设计实验(共5篇)
int search_min(int a,int b,int c) { if(a 运行结果: ⑸ 编写一个程序,先定义一个将字符大写.小写和数字进行分类的带参数宏,然后对从键盘输入的一系列字符进行分类 ...
- 北京电大c语言实验作业二,大学大一c语言程序设计实验室上机题全部代码答案(实验报告).doc...
大学大一c语言程序设计实验室上机题全部代码答案(实验报告).doc C语言实验报告实验1-1:helloworld程序:源代码:#includemain(){printf("hellowor ...
- 池州学院c语言实验作业答案,池州学院《C语言程序设计》实验教学大纲.doc
池州学院<C语言程序设计>(2011002)实验教学大纲 适用范围:非计算机理工类本科各专业 总学时:18 (2010年6月修订)New 一.教学目的: 本大纲是针对理工科非计算机各专业的 ...
- 池州学院c语言实验作业答案,池州学院实验报告3.doc
池州学院实验报告3 池州学院实验报告 姓 名_ 余飞 学 号 100712223 专 业 10级资环 (2)年级 大一 成绩___________ 课程名称:c语言程序设计 教师签字_________ ...
- 北京电大c语言实验作业二,安徽大学C语言实验平台作业答案
实验三 C基本数据类型及运算 1. 编程:根据需要定义相关变量,键盘输入10.0.20.6.5.0三个实数分别赋给相关三个变量,输出该3个变量的和s.乘积p和平均值a. 2. 编程:输入球的半径,计算 ...
- c语言期末作业自己设计个小程序,帮看一个小程序吧,c语言期末考…求求各位大神了...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #define max 2014 typedef struct stack { int data[max]; int ...
- c语言求20项FBNC,大学C语言 结业作业 暗影行者
C语言实验作业报告 -hongXkeX 实验1成绩转换为相应的等级 [实验目的] 1.熟练运用输入,输出语句. 2.练习简单switch语句 [实验内容] 对于给定的一个百分制成绩,输出用ABCDE ...
- c语言实验程序,C语言实验程序
<C语言实验程序>由会员分享,可在线阅读,更多相关<C语言实验程序(11页珍藏版)>请在人人文库网上搜索. 1.P113:6 #include void main() floa ...
- 金陵科技学院c语言实验报告册,金陵科技学院C语言实验册
金陵科技学院C语言实验册 学 生 实 验 报 告 册 (理工类) 课程名称: C语言程序设计实验 专业班级: 学生学号: 学生姓名: 所属院部: 指导教师: 20 --20 学年 第 学期 金陵科技学 ...
最新文章
- Oracle审计--AUD$占用空间较大处理方案
- Spring Boot(四):利用devtools实现热部署,改动代码自动生效
- git仓库相关知识01-安装和基本命令
- 使用协同过滤进行众包服务的工人工作自动化推荐
- 余玄相似度,TF-IDF
- 秒杀多线程第八篇 经典线程同步 信号量Semaphore
- Effective Java之将局部变量的作用域最小化(四十五)
- VS2013 MFC基于对话框编程(创建工程)
- 【渝粤教育】电大中专电大中专职业健康与安全考试考核试题作业 题库
- 马化腾、李彦宏、雷军,程序员国服三强谁的编程能力最牛?
- postfix邮件队列管理
- PAT (Basic Level) Practice1026 程序运行时间
- 以下内容为Stackoverflow上整理以作纪录
- 【安装包】VC++6.0
- 苹果发布会新品曝光 这款软件肯定用得上
- 计算机毕业设计之SSM网上订餐系统
- Qt使用libmodbus
- oracle plm 文件系统,ORACLE-PlM管理方案(标准材料).ppt
- latch详解——转自itpub精华帖(引)
- 无法使用tftp下载Linux内核到开发板,总是显示TTTTTTTTT的原因
热门文章
- Mybatis从入门到精通(全)
- 电商小程序实战教程-需求分析
- python实现高校教务管理系统_Python实现新版正方教务系统爬虫
- 2023计算机毕业设计SSM最新选题之java住宅小区停车管理系统494ak
- 投影仪显示服务器不能连接不上,极米投影仪常见故障和自助解决方案?
- 部署本地thinkphp6(iis+php7)
- Apache的JK插件
- 莎士比亚数据集_如何使用深度学习写莎士比亚
- 解决go数据表查询结构体对应字段null问题(sqlx converting NULL to string is unsupported)
- 面向对象——依赖倒转原则和里氏代换原则