C++编写对角矩阵的压缩存储
时间: 2024-03-20 10:41:16 浏览: 79
对角矩阵压缩存储
对角矩阵是一种非常特殊的矩阵,它的非零元素只出现在主对角线上,其余元素均为0。因此,对角矩阵可以采用压缩存储的方式来节省存储空间。
对于一个n x n的对角矩阵,其主对角线上的元素共有n个,可以用一个长度为n的一维数组来存储。具体来说,数组中第i个元素表示第i行第i列的元素,即A[i][i]。而除了主对角线上的元素之外,其余元素均为0,可以不进行存储。
下面是一个C++的示例代码:
```cpp
#include <iostream>
using namespace std;
int main() {
int n; // 矩阵大小
cout << "请输入矩阵大小:";
cin >> n;
int a[n]; // 一维数组存储主对角线上的元素
cout << "请输入对角线元素:";
for (int i = 0; i < n; i++) {
cin >> a[i];
}
cout << "压缩存储结果:\n";
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i == j) {
cout << a[i] << " ";
} else {
cout << "0 ";
}
}
cout << endl;
}
return 0;
}
```
在这个示例代码中,我们首先通过一维数组a来存储主对角线上的元素,然后输出压缩存储的结果。对于每个位置(i,j),如果i等于j,则输出a[i],否则输出0。这样就可以实现对角矩阵的压缩存储了。
阅读全文