二维数组的压缩存储矩阵.docx

二维数组的压缩存储矩阵.docx

ID:60811026

大小:52.38 KB

页数:7页

时间:2020-12-20

二维数组的压缩存储矩阵.docx_第1页
二维数组的压缩存储矩阵.docx_第2页
二维数组的压缩存储矩阵.docx_第3页
二维数组的压缩存储矩阵.docx_第4页
二维数组的压缩存储矩阵.docx_第5页
资源描述:

《二维数组的压缩存储矩阵.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据结构实验报告评分满分——5分学号:姓名:许明华专业:计算机科学与技术知识范畴:数组与广义表完成日期:2017年04月21日实验题目:基于压缩存储的半三角矩阵乘法运算的实现实验内容及要求:已知两个n阶下半三角矩阵的乘积仍为n阶下半三角矩阵。编程输入两个n阶下半三角矩阵,输出这两个矩阵的乘积。要求n阶下半三角矩阵采用一维数组压缩存储(即只存储下半三角)。程序先从键盘(或字符文件)输入n值,建立三个矩阵的一维数组动态存储结构,然后从键盘(或字符文件)输入两个半三角矩阵,最后输出计算结果到屏幕上(或另一个字符文件中)。例如:键盘输

2、入为:3123456-1-2-3-4-5-6则输出为:-1-8-9-38-45-36实验目的:掌握半三角矩阵的顺序存储结构。数据结构设计简要描述:序言:这是本学期第五个实验,本实验是要求我们将两个二维半三角矩阵压缩存储为一维矩阵,并对其进行乘法操作,得到一个一维的压缩存储矩阵,并将其打印输出;数据结构简单设计:本实验主要可分为两个大的模块(压缩存储矩阵、压缩矩阵相乘)。第一,我们通过键盘键入一个数组的阶数,然后输入两个半三角矩阵,,但是这两个半三角矩阵要进行压缩存储为一维矩阵,关键操作即(m=(i*(i+1))/2+j),即可

3、将二维下标转化为一维下标;第二,运用公式来进行相乘操作,求得两个下三角矩阵的乘积。算法设计简要描述:1,通过(m=(i*(i+1))/2+j)将二维下标转化为一维下标进行输入,得到压缩存储矩阵;2,运用公式进行乘积操作,但是乘数矩阵下标和结果矩阵的下标并没有同步,所以运用三个公式来进行分离操作,m1=(i*(i+1))/2+k;m2=(k*(k+1))/2+j;m=(i*(i+1))/2+j;c[m]+=a[m1]*b[m2];这样即能实现相乘的操作,但是每一次的c[m]没有进行初始化,所以在每一次得到m值后,进行操作c[m]

4、=0;输入/输出设计简要描述:输入:1,输入下三角存储矩阵的阶数n;2,输入第一个下三角矩阵,如123456;3,输入第二个下三角矩阵,如-1-2-3-4-5-6;输出:1,输入2操作后,按存储矩阵格式输出打印第一个下三角矩阵;2,输入3操作后,按存储矩阵格式输出打印第二个下三角矩阵,并输出打印两个矩阵的乘积矩阵编程语言说明:1,编程软件,CodeBlocks16.0;1,代码均用C语言实现;2,输入输出采用C语言的printf和scanf函数;3,程序注释采用C/C++规范;主要函数说明:voidinput_Arr(int,

5、int);//输入半三角矩阵声明voidprint(int,int);//输出打印半三角矩阵声明intprint_Array(int,int,int,int);//两个半三角矩阵的乘法运算声明程序测试简要报告:见截图:源程序代码:#include//函数声明部分voidinput_Arr(int,int);//输入半三角矩阵声明voidprint(int,int);//输出打印半三角矩阵声明intprint_Array(int,int,int,int);//两个半三角矩阵的乘法运算声明//输入半三角矩阵voi

6、dinput_Arr(inta[],intn){intm;printf("请输入数组:");for(inti=0;i

7、标scanf("%d",&a[m]);//输入对应的下三角矩阵}}}//输出打印半三角矩阵voidprint(inta[],intn){intm=0;for(inti=0;i

8、过程的中间变量,m为乘积过后的一维压缩数组的下标,m1为第一个数组的压缩存储的下标,m2为第二个数组的压缩存储的下标for(i=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。