对称矩阵的压缩存储
对称矩阵的压缩存储Description为节省内存,n阶对称矩阵采用压缩存储,编写实现C=A+B操作的函数。设矩阵A、矩阵B和矩阵C均采用压缩存储方式存储,矩阵元素均为整...
对称矩阵的压缩存储 Description为节省内存,n阶对称矩阵采用压缩存储,编写实现C = A + B操作的函数。设矩阵A、矩阵B和矩阵C均采用压缩存储方式存储,矩阵元素均为整数类型。输出显示成矩阵形式,设矩阵元素均为整数类型。3×3对称矩阵{1,2,3,2,1,2,3,2,1}按“行优先顺序”压缩矩阵表示为{1,2,1,3,2,1}。
数据输入:第一行:矩阵n的值。
第二行:矩阵A的压缩矩阵表示。
第三行:矩阵B的压缩矩阵表示。
数据输出:第一行到第n行:矩阵A+B的非压缩矩阵表示。 Sample Input 2 1 2 3 4 5 6 Sample Output 5 7 7 9 展开
数据输入:第一行:矩阵n的值。
第二行:矩阵A的压缩矩阵表示。
第三行:矩阵B的压缩矩阵表示。
数据输出:第一行到第n行:矩阵A+B的非压缩矩阵表示。 Sample Input 2 1 2 3 4 5 6 Sample Output 5 7 7 9 展开
1个回答
2013-06-03
展开全部
#include<iostream>
using namespace std;
int main()
{
int temp[1000];
int t[500][500];
int arry1[1000],arry2[1000];
int n;
scanf("%d",&n);
int i;
int m;
m=n*n+n;
m=m/2;
for(i=1;i<=m;i++)
{
scanf("%d",&arry1[i]);
}
for(i=1;i<=m;i++)
{
scanf("%d",&arry2[i]);
}
for(i=1;i<=m;i++)
{
temp[i]=arry1[i]+arry2[i];
}
int j;
int k;
for(i=1,k=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{ t[i][j]=temp[k];
k++;
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(j>i)
printf("%d",t[j][i]);
else
printf("%d",t[i][j]);
if(j!=n)
printf(" ");
}
printf("\n");
}
return 0;
}
using namespace std;
int main()
{
int temp[1000];
int t[500][500];
int arry1[1000],arry2[1000];
int n;
scanf("%d",&n);
int i;
int m;
m=n*n+n;
m=m/2;
for(i=1;i<=m;i++)
{
scanf("%d",&arry1[i]);
}
for(i=1;i<=m;i++)
{
scanf("%d",&arry2[i]);
}
for(i=1;i<=m;i++)
{
temp[i]=arry1[i]+arry2[i];
}
int j;
int k;
for(i=1,k=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{ t[i][j]=temp[k];
k++;
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(j>i)
printf("%d",t[j][i]);
else
printf("%d",t[i][j]);
if(j!=n)
printf(" ");
}
printf("\n");
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询