C++ 矩阵压缩乘法_water江水

#include<iostream>
using namespace std;
#define n 2//注意可以根据不同的情况,n是矩阵的维数;只对对称矩阵

typedef int datetype;

void get_Data(datetype array[],datetype array1[])
{

cout<<"请输入矩阵一数据元素"<<endl;
for(int i=0;i<(n*(n+1)/2);i++)
{
cin>>array[i];
}

cout<<"请输入矩阵二数据元素"<<endl;
for( i=0;i<(n*(n+1)/2);i++)
{
cin>>array1[i];
}
cout<<"{dy}个压缩矩阵是"<<endl;
for(i=0;i<n*(n+1)/2;i++)
{ cout<<array[i]<<" ";    
}
cout<<endl;
cout<<"第二个压缩矩阵是"<<endl;
for(i=0;i<n*(n+1)/2;i++)
{
cout<<array1[i]<<" ";    
}
cout<<endl;
}

void display(datetype a[],datetype b[],datetype c[])
{  
int i,j,k,v,p,q,sum;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
if(i>=j)
{
v=i*(i-1)/2+j-1;
sum=0;
for(k=1;k<=n;k++)
{
if(i>=k)
p=i*(i-1)/2+k-1;
else
p=k*(k-1)/2+i-1;
if(j>=k)
q=j*(j-1)/2+k-1;
else
q=k*(k-1)/2+j-1;
sum=sum+a[p]*b[q];
}
c[v]=sum;
}
}
}

int main(){

datetype array[n*(n+1)/2];
datetype array1[n*(n+1)/2];//=new datetype[n*(n-1)/2];
datetype array2[n*(n+1)/2];
get_Data( array, array1);
display( array, array1, array2);
for(int i=0;i<n*(n+1)/2;i++)
{
   cout<<array2[i]<<"   ";
     cout<<endl;
}
return 1;
}



郑重声明:资讯 【C++ 矩阵压缩乘法_water江水】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——