用C++创建一个压缩存储的对称矩阵,以二维方式显示所创建的对称矩阵。
时间: 2024-05-05 13:17:50 浏览: 163
以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, i, j;
printf("请输入对称矩阵的阶数:");
scanf("%d", &n);
// 创建动态数组存储对称矩阵
int **matrix = (int **)malloc(n * sizeof(int *));
for (i = 0; i < n; i++) {
matrix[i] = (int *)malloc(n * sizeof(int));
}
// 随机生成对称矩阵的上三角元素
for (i = 0; i < n; i++) {
for (j = i; j < n; j++) {
matrix[i][j] = rand() % 100;
}
}
// 将上三角元素赋值给下三角元素
for (i = 0; i < n; i++) {
for (j = i+1; j < n; j++) {
matrix[j][i] = matrix[i][j];
}
}
// 以二维方式显示对称矩阵
printf("生成的对称矩阵为:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
// 释放动态数组
for (i = 0; i < n; i++) {
free(matrix[i]);
}
free(matrix);
return 0;
}
```
这段代码中,我们首先从用户输入中获取对称矩阵的阶数,然后动态创建一个二维数组来存储对称矩阵。接下来,我们随机生成对称矩阵的上三角元素,并将其赋值给下三角元素。最后,我们以二维方式显示对称矩阵,并释放动态数组的内存。
阅读全文