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