C语言编程求矩阵乘积。

从键盘上输入一个3*2的矩阵和一个2*3的矩阵,求出两个矩阵的乘积,并输出出来。

#include"stdio.h"
void main()
{
int a[3][2],b[2][3],c[3][3];
int i,j,k;
for(i=0;i<3;i++)//输入
{
for(j=0;j<2;j++)
scanf("%d",&a[i][j]);
}
for(i=0;i<2;i++)//输入
{
for(j=0;j<3;j++)
scanf("%d",&b[i][j]);
}
for(i=0;i<3;i++)//计算
{
for(j=0;j<3;j++)
{
c[i][j]=0;//初始化c
for(k=0;k<2;k++)
c[i][j]+=a[i][k]*b[k][j];
}
}
for(i=0;i<3;i++)//输出
{
for(j=0;j<3;j++)
printf("%d ",c[i][j]);
printf("\n");
}
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-01-20
#include <stdio.h>

int main()
{
printf("3*2矩阵:\n");
int i,j;
int  a[6];
for (i=0; i<3; ++i)
{
for (j=0; j<2; ++j)
{
scanf("%d",&a[i*2+j]);
}
}
printf("2*3矩阵:\n");

int  b[6];
for (i=0; i<2; ++i)
{
for (j=0; j<3; ++j)
{
scanf("%d",&b[i*3+j]);
}
}
int c[9];
for (i=0; i<3; ++i)
{
for (j=0; j<3; ++j)
{
int temp = 0;
for (int k=0; k<2; ++k)
{
temp += a[i*2+k]*b[k*3+j];
}
c[i*3+j] = temp;
}
}
for (int i=0;i<3;++i)
{
for(j=0; j<3;++j)
{
printf("%d ",c[i*3+j]);
}
printf("\n");
}
return 0;
}

第2个回答  2018-03-30

#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;

}

}

}

}

根据具体问题类型,进行步骤拆解/原因原理分析/内容拓展等。
具体步骤如下:/导致这种情况的原因主要是……

本回答被网友采纳
第3个回答  2014-01-20
#include<stdio.h>
int main()
{   
int a[3][2]={{1,2},{3,4},{5,6}},b[2][3]={{1,2,3},{4,5,6}};
int i,j;
for(i=0;i<3;i++)
for(j=0;j<2;j++)
{
a[i][j]=a[i][j]*b[j][i];
printf("%d ",a[i][j]);  
if(j==1)printf("\n");  
}
return 0;
}

相似回答