1. 程式人生 > >C語言程式設計第八章8.1(3)

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