数据结构实验稀疏矩阵计算器.docx

上传人:b****1 文档编号:14046580 上传时间:2023-06-20 格式:DOCX 页数:10 大小:72.51KB
下载 相关 举报
数据结构实验稀疏矩阵计算器.docx_第1页
第1页 / 共10页
数据结构实验稀疏矩阵计算器.docx_第2页
第2页 / 共10页
数据结构实验稀疏矩阵计算器.docx_第3页
第3页 / 共10页
数据结构实验稀疏矩阵计算器.docx_第4页
第4页 / 共10页
数据结构实验稀疏矩阵计算器.docx_第5页
第5页 / 共10页
数据结构实验稀疏矩阵计算器.docx_第6页
第6页 / 共10页
数据结构实验稀疏矩阵计算器.docx_第7页
第7页 / 共10页
数据结构实验稀疏矩阵计算器.docx_第8页
第8页 / 共10页
数据结构实验稀疏矩阵计算器.docx_第9页
第9页 / 共10页
数据结构实验稀疏矩阵计算器.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据结构实验稀疏矩阵计算器.docx

《数据结构实验稀疏矩阵计算器.docx》由会员分享,可在线阅读,更多相关《数据结构实验稀疏矩阵计算器.docx(10页珍藏版)》请在冰点文库上搜索。

数据结构实验稀疏矩阵计算器.docx

数据结构实验稀疏矩阵计算器

实验报告

题目:

稀疏矩阵运算器

班级:

14电子商务平台建设班完成日期:

2015.11.2

学号:

20141103468姓名:

孙少辉

学号:

20141103421姓名:

杨德龙

学号:

20141103407姓名:

柴益新

一:

需求分析

稀疏矩阵是指那些多数元素为零的矩阵。

利用“稀疏“特点进行存储和计算可以大大节省存储空间,提高计算效率。

实现一个能进行稀疏矩阵基本运算的运算器。

【基本要求】

以“带行逻辑链接信息“的三元组顺序表示稀疏矩阵,实现两个矩阵相加、相减和相乘运算。

稀疏矩阵的输入采用三元组表示,而运算结果的矩阵则以通常阵列形式列出。

【项目约束】

1.首先应输入矩阵的行数和列数,并判断给出的两个矩阵

行、列数对于所要求作的运算是否相匹配。

可设矩阵的行数和列数均不超过20。

2.程序可以对三元组的输入顺序加以限制,例如,按行优

先。

注意研究教科书5.3.2节中的算法,以便提高计算效率。

3.在用三元组稀疏矩阵时,相加或相减所得结果矩阵应该另生成,乘积矩阵也可用二维数组存放。

三:

详细设计

1:

数据结构的定义

元素类型、变量、指针类型

(1)项目数据表:

3.2子函数

函数名

入口参数

出口参数

功能介绍

main()

定义二维数组及用到的各种变量

3:

函数调用关系

无函数调用关系,只有一个主函数

四:

调试分析

三元组顺序的输入规则。

以000作为输入的结束信号。

完成实现稀疏矩阵的相加、相减、相乘的运算。

五:

用户使用说明

(1)首先运行文件系统

1.首先定义要运算的第一个稀疏矩阵的行列数

定义完成之后输入另一个要运算的稀疏矩阵的行列。

(2)输入信息:

如下图所示输入两个矩阵的元素

所有输入信息以及运算方法输入完成之后。

回车直接算出结果

(3)输出信息:

六、源代码

/**

***项目名称:

稀疏矩阵的运算

***设计者:

杨德龙,柴益新,孙少辉

***时间:

2015.11.02

***实现目标:

实现矩阵的加法,减法,乘法;

***/

#include

#include

intmain()

{

//定义二维数组及用到的各种变量

inta[20][20];

intb[20][20];

intc[20][20];

intm,n,k,l,i,j,p;

intsum;

into;

chart;

//输入操作

printf("请输入第一个矩阵的行列\n");

scanf("%d%d",&n,&m);//初始化a数组

for(i=0;i

for(j=0;j

a[i][j]=0;

printf("请输入第二个矩阵的行列\n");

scanf("%d%d",&k,&l);//初始化b数组

for(i=0;i

for(j=0;j

b[i][j]=0;

printf("请用三元组的方式输入第一个矩阵(例111)(输入000时结束)\n");

while(true)

{

scanf("%d%d%d",&i,&j,&p);

if(i==0&&j==0&&p==0)

break;

else

a[i-1][j-1]=p;

}

printf("请用三元组的方式输入第二个矩阵(例111)(输入000时结束)\n");

while(true)

{

scanf("%d%d%d",&i,&j,&p);

if(i==0&&j==0&&p==0)

break;

else

b[i-1][j-1]=p;

}

printf("请输入执行操作(+或-或*)\n");

while(true)

{

getchar();

scanf("%c",&t);

if(t=='+')//加法运算

{

if(n!

=k||m!

=l)

{

printf("不能进行该运算!

");

exit(0);//结束

}

else

{

printf("答案为:

\n");

for(i=0;i

{

for(j=0;j

{

printf("%d",a[i][j]+b[i][j]);

}

printf("\n");

}

exit(0);//结束

}

}

elseif(t=='-')//减法运算

{

if(n!

=k||m!

=l)

{

printf("不能进行该运算!

");

exit(0);//结束

}

else

{

printf("答案为:

\n");

for(i=0;i

{

for(j=0;j

{

printf("%d",a[i][j]-b[i][j]);

}

printf("\n");

}

exit(0);//结束

}

}

elseif(t=='*')//乘法运算

{

if(m!

=k)

{

printf("不能进行该运算!

");

exit(0);//结束

}

else

{

printf("答案为:

\n");

for(o=0;o

{

for(i=0;i

{

sum=0;

for(j=0;j

{

sum=sum+a[o][j]*b[j][i];

}

printf("%d",sum);

}

printf("\n");

}

exit(0);//结束

}

}

else

printf("输入符号错误,重新输入:

\n");

}

return0;//结束

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2