#include <math.h>
#include <stdio.h>
#define M 3
#define N 3
// 对称矩阵的输入
void Symmetric_input(int **A, int n, int B[])
{
int i, j, k = 0;
// 将对称元素及对称轴上的元素存入数组B
for (i = 0; i < n; i++)
for (j = 0; j < i + 1; j++)
B[k++] = *(*(A + i) + j);
}
// 对称矩阵的输出
void Symmetric_output(int B[], int length)
{
int i, j, k = 0;
int n = (sqrt(1 + 8 * length) - 1) / 2; //计算矩阵的阶数
int A[n][n];
// 恢复对称矩阵A
for (i = 0; i < n; i++)
for (j = 0; j < i + 1; j++)
A[i][j] = A[j][i] = B[k++];
// 输出对称矩阵
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
printf("%d ", A[i][j]
对称矩阵、三角矩阵的压缩存储的输入与输出算法
最新推荐文章于 2023-02-14 09:43:43 发布