一、实验目的
理解和掌握下三角矩阵的压缩存储技术,根据相应算法编写一个程序,实现下三角矩阵的压缩存储。
二、实验内容
用一个一维数组存储一个5X5的下三角矩阵。
原理:对于下三角矩阵来说,大约有一半的元素为零,这些元素不必存储,只需存储下三角部分的非零元素。
#include"stdio.h"
void main()
{
int i,j,k;
int a[5][5]={1,0,0,0,0,2,3,0,0,0,4,5,6,0,0,7,8,9,1,0,2,3,4,5,6};
int b[33];
printf("输入矩阵:\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
printf("压缩数组:\n");
for( i=0;i<5;i++)
{
for( j=0;j<5;j++)
{
if(i>=j)
{
k=i*(i+1)/2+j;
b[k]=a[i][j];
}
}
}
for( k=0;k<15;k++)
{
printf("%d ",b[k]);
}
printf("\n");
}