C语言程序设计第八章8.1(3)

**

利用矩阵相乘公式编程计算mn阶矩阵A和nm阶矩阵B之积

**

#include<stdio.h>
#define ROW 2
#define COL 3
/*函数功能:计算矩阵相乘之积,结果存于二维数组c中*/
void MultiplyMatrix(int a[ROW][COL],int b[COL][ROW],int c[ROW][ROW])
{
	int i,j,k;
	for(i=0;i<ROW;i++)
	{
		for(j=0;j<ROW;j++)
		{
			c[i][j]=0;
			for(k=0;k<COL;k++)
			{
				c[i][j]=c[i][j]+(a[i][k]*b[k][j]);
			}
		}
	}
}
/*函数功能:输出矩阵a中的元素*/
void PrintMatrix(int a[ROW][ROW])
{
	int i,j;
	for(i=0;i<ROW;i++)
	{
		for(j=0;i<ROW;j++)
		{
			printf("%6d",a[i][j]);
		}
		printf("\n");
	}
}
int main()
{
	int a[ROW][COL],b[COL][ROW],c[ROW][ROW],i,j;
	printf("input 2*3 matrix a:\n");
	for(i=0;i<ROW;i++)
	{
		for(j=0;j<COL;j++)
		{
			scanf("%d",&a[i][j]);
		}
	}
	printf("input 3*2 matrix b:\n");
	for(i=0;i<COL;i++)
	{
		for(j=0;j<COL;j++)
		{
			scanf("%d",&b[i][j]);
		}
	}
	MultiplyMatrix(a,b,c);
	printf("Results:\n");
	PrintMatrix(c);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_43339956/article/details/83956162