#include<iostream>
using namespace std;
void mutiple(int** a,int** b,int** c,int m,int s,int n) //m*s乘以s*n最后得m*n
{
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
c[i][j]=0;
for(int k=0;k<s;k++)
{
c[i][j]+=a[i][k]*b[k][j];
}
}
}
}
int main()
{
int **a,**b,**c;
int i,j;
a = new int*[3]; //a b c 都是指针数组 本质是数组 里面存放的元素是指针 a=3*2 b=2*1 c=3*1
b = new int*[2]; //分别都是有两个元素 数组赋值当然要一个一个地赋值了
c = new int*[3]; //a里面有3个元素 b里面有2个元素 c里面有3个元素
for (int ii=0;ii<3;ii++)
{
a[ii] = new int[2]; //a里面存放的元素是指向两个int类型的指针
c[ii] = new int[1]; //c里面存放的元素是指向一个int类型的 指针
}
for (int ii=0;ii<2;ii++)
{
b[ii] = new int[1]; //b里面存放的元素是指向一个int类型的指针
}
a[0][0]=1;a[0][1]=-1;
a[1][0]=1;a[1][1]=1;
a[2][0]=2;a[2][1]=1;
b[0][0]=1;
b[1][0]=0;
mutiple(a,b,c,3,2,1);
for(i=0;i<3;++i)
for(j=0;j<1;++j)
cout<<c[i][j]<<endl;
system("pause");
return 0;
}
矩阵相乘
最新推荐文章于 2019-02-26 20:41:18 发布