快捷键打开回收站:矩阵A*B(乘积)结果存入矩阵c中,并按矩阵形式输出。

来源:百度文库 编辑:高考问答 时间:2024/04/29 04:40:40

//这有一个我以前写的稀疏矩阵的乘法 其实也差不多啦。
struct Triple{
int i,j; //i代表行j代表列
int e;//数据域
};
struct TSMatrix{
Triple data[MAXSIZE]; //数据域
int mu,nu,tu; //mu行数nu列数tu非零元个数
};
bool MultSmatrix(TSMatrix &M, TSMatrix &N,TSMatrix &Q)//相乘
{
if(M.nu!=N.mu){cout<<"两个是不能相乘的\n";return 0;}
int x=1;
for(int xx=0;xx<M.tu+N.tu ;xx++)
Q.data[xx].e=0;
Q.mu=M.mu ;
Q.nu =N.nu ;
for(int k=1;k<=M.mu ;k++)
{
for(int l=1;l<=N.tu;l++)
{
for(int yy=1;yy<=M.nu;yy++)
{
for(int a=1;a<=M.tu ;a++)
{
for(int b=1;b<=N.tu ;b++)
{
if(M.data[a].i==k&&N.data[b].j==l)
{
if(M.data [a].j==yy&&N.data [b].i==yy)
{
Q.data [x].e+=M.data[a].e*N.data [b].e;
Q.data[x].i=k;
Q.data[x].j=l;
}

}
}
}
}
if(Q.data [x].e !=0)x++;
}
}
Q.tu=x;
Output(Q);
return 1 ;
}