矩阵相乘

只有当第一个矩阵的列数等于行数时才可以相乘。。。


/*

		n*m的矩阵A与nn*mm的矩阵B相乘。。。
		想乘后的矩阵C为n*mm
		C[i][j]=A中第i行的元素与B中第j列的元素对应相乘后的和。

 */
#include"stdio.h"
#include"string.h"
int main()
{
	int a[101][101],b[101][101],c[101][101];
	int i,j,k;
	int n,m,nn,mm;
	while(scanf("%d%d%d%d",&n,&m,&nn,&mm)!=-1)
	{
		for(i=0;i<n;i++)
		{
			for(j=0;j<m;j++)
				scanf("%d",&a[i][j]);
		}
		
		for(i=0;i<nn;i++)
		{
			for(j=0;j<mm;j++)
				scanf("%d",&b[i][j]);
		}
		
		for(i=0;i<n;i++)
		{
			for(j=0;j<mm;j++)
			{
				for(k=0;k<m;k++)
				{
					c[i][j]+=a[i][k]*b[k][j];
				}
			}
		}
		for(i=0;i<n;i++)
		{
			for(j=0;j<mm;j++)
				printf("%d ",c[i][j]);
			printf("\n");
		}
	}
	return 0;
}


你可能感兴趣的:(矩阵相乘)