一、实验目的和要求
理解和掌握下三角矩阵的压缩存储技术,使用C语言根据相应算法编写一个程序,实现下三角矩阵的压缩存储。
要求仔细阅读下面的内容,编写C程序,上机通过,并观察其结果,写出实验报告书。
二、实验内容和原理
内容:用一个一维数组存储一个5X5的下三角矩阵。
原理:对于下三角矩阵来说,大约有一半的元素为零,这些元素不必存储,只需存储下三角部分的非零元素。
三、主要仪器设备
计算机一台
四、实验主程序
#include<stdio.h>
int main(void)
{
int a[15],
b[5][5]={{1},{2,3},{4,5,6},{7,8,9,10},{11,12,13,14,15}},
i,j,k;
for(i=0,k=0;i<5;++i)
for(j=0;j<=i;++j)
{
a[k]=b[i][j];
++k;
}
for(i=0;i<15;++i)
printf("%d ",a[i]);
printf("\n");
for(i=0;i<5;++i)
{
for(j=0;j<5;++j)
{
if(j<=i)
printf("%-3d",a[i*(i+1)/2+j]);
else
printf("%-3d",0);
}
putchar('\n');
}
getchar();
return 0;
}
实验结果
五、实验心得
通过实验学习,理解了下三角矩阵的压缩存储的算法,了解到像了下三角矩阵这样的规则矩阵可以压缩存储,极大节省了空间,使我受益匪浅。