//对称矩阵的压缩存储
#include <stdio.h>
#define len 5
void MatrixPrint(int *M){
for(int c = 0; c <= len*(len+1)/ 2;c++){
printf("\t%d",M[c]);
if(c == 0||c == 2||c == 5||c == 9||c == 14)
printf("\n");
}
}
int main(){
//定义对称矩阵
int A[len][len] = {1,2,3,4,5,
2,3,4,5,6,
3,4,5,6,7,
4,5,6,7,8,
5,6,7,8,9};
//定义存储数组
int B[len*(len + 1) / 2];
//进行压缩存储
for(int i = 0;i < len ;i++){
for(int j = 0;j <= i;j++){
B[i*(i+1)/2+j] = A[i][j];
}
}
printf("压缩矩阵的元素是:\n");
//输出B中元素
MatrixPrint(B);
return 0;
}