求一个C语言编矩阵乘法运算的程序

要求:求m*n阶实矩阵A与n*k阶实矩阵B的乘积矩阵C=AB麻烦知道的朋友速度解答,急求,谢谢了... 要求:求m*n阶实矩阵A与n*k阶实矩阵B的乘积矩阵C=AB
麻烦知道的朋友速度解答,急求,谢谢了
展开
 我来答
手机用户22667
推荐于2017-12-15 · TA获得超过221个赞
知道答主
回答量:121
采纳率:0%
帮助的人:116万
展开全部
#include "iostream.h"

void MatrixChain(int *p,int n,int **m,int **s)
{
for(int i=1;i<=n;i++)
m[i][i]=0;
for(int r=2;r<=n;r++)
for( i=1;i<=n-r+1;i++)
{
int j=i+r-1;
m[i][j]=m[i+1][j]+p[i-1]*p[i]*p[j];
s[i][j]=i;
for(int k=i+1;k<j;k++)
{
int t=m[i][k]+m[k+1][j]+p[i-1]*p[k]*p[j];
if(t<m[i][j])
{
m[i][j]=t;
s[i][j]=k;
}
}
}

}

void Traceback(int i,int j,int **s)
{

if(i==j)return;
Traceback(i,s[i][j],s);
Traceback(s[i][j]+1,j,s);
cout<<"让 A"<<i;//<<","<<s[i][j];
cout<<"和 A"<<(s[i][j]+1)<<"相乘"<<endl;//<<","<<j<<"相乘"<<endl;

}

void main()
{

int n,*p;
int j=1;
cout<<"请输入矩阵的个数"<<endl;
cin>>n;
p=new int[n+1];

cout<<"请输入第一个矩阵的行数,然后按回车键"<<endl;
cin>>p[0];
cout<<"第"<<j<<"个矩阵是"<<endl;
cout<<p[0]<<"*";
cin>>p[1];
// cout<<p[1]<<endl;
cout<<endl;
for(int i=2;i<n+1;i++)
{

cout<<"第"<<i<<"个矩阵是:";
cout<<p[i-1]<<"*";
cin>>p[i];
}
// int p[]={30,35,15,5,10,20,25};
// int m[6][6],s[6][6];

int **m,**s;
m=new int*[n];
for( i=1;i<=n;i++)
m[i]=new int[n];

s=new int*[n];
for( i=1;i<=n;i++)
s[i]=new int[n];

MatrixChain(p,n,m,s);
Traceback(1,n,s);

}
这是矩阵连乘
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式