/*
给定一个一维数组,
将其转化为对称矩阵(关于主对角线对称)
*/
#include<stdio.h>
#include<string.h>
const int MAXN = 1e3;
int mat[MAXN][MAXN];
int a[MAXN];
int main()
{
puts("请输入数据的个数");
int n;//输入数据的个数
scanf("%d",&n);
memset(mat,0,sizeof(mat));//矩阵初始化为0;
printf("请输入%d个数据:\n",n);
for(int i=0;i<n;++i)
scanf("%d",&a[i]);
//
int x=1;
int y=1;
puts("\n以行序为主序:");
for(int i=0;i<n;++i)
{
mat[x][y++]=a[i];
if(y>x)
{
x++;
y=1;
}
}
for(int i=1;i<=x;++i)
for(int j=1;j<=x;++j)
mat[i][j]=mat[j][i];
for(int i=1;i<=x;++i)
{
for(int j=1;j<=x;++j)
printf("%d ",mat[i][j]);
printf("\n");
}
return 0;
}
矩阵还原——————数据结构作业
最新推荐文章于 2023-03-23 18:11:49 发布
本文介绍了一种将一维数组转换为对称矩阵的方法,通过行序填充矩阵,并利用矩阵的对称性质完成转换。该过程首先读取用户输入的数据个数,然后接收指定数量的数据,初始化矩阵,接着按照行序填充矩阵,并复制上三角到下三角以实现对称。
摘要由CSDN通过智能技术生成