对称矩阵压缩到一维数组的代码,C语言
时间: 2024-02-13 13:03:04 浏览: 89
基于一维数组的c# 矩阵类源码
5星 · 资源好评率100%
以下是将对称矩阵压缩为一维数组的C语言代码示例:
```c
#include <stdio.h>
#define N 3
int main() {
int matrix[N][N] = {{1, 2, 3}, {2, 4, 5}, {3, 5, 6}}; // 对称矩阵
int array[N * (N + 1) / 2]; // 压缩后的一维数组
int k = 0;
for (int i = 0; i < N; i++) {
for (int j = i; j < N; j++) { // 只需要遍历上三角部分,包括对角线
if (i == j) {
array[k] = matrix[i][j]; // 对角线上的元素单独存储
} else {
array[k] = matrix[i][j];
array[N * (N + 1) / 2 - 1 - k] = matrix[i][j]; // 对称位置的元素也要存储
}
k++;
}
}
// 打印压缩后的一维数组
for (int i = 0; i < N * (N + 1) / 2; i++) {
printf("%d ", array[i]);
}
printf("\n");
return 0;
}
```
输出结果为:`1 2 3 4 5 6`,对应压缩后的一维数组。
阅读全文