DS002-矩阵的乘法

本程序演示矩阵的乘法。 

A的列数必须等于B的行数。

用二维数组表示矩阵。 

#include "time.h"   //与时间相关的函数
#include "stdlib.h"   //rand()函数在此库中
#include "stdio.h" //输入输出相关函数 
int A[2][3]={
   
   {1,2,3},{4,5,6}}; 
const int ROW=2;//A的行数 
const int P=3; //A的列数 

int B[3][2]={
   
   {1,4},{2,5},{3,6}}; 
const int COL=2;//B的列数 

int C[ROW][COL];

void Multiple(int A[ROW][P],int B[P][COL],int C[ROW][COL])
{//A是M行p列,B是p行N列 
	int i,j,k;
	for(i=0;i<ROW;i++)
	{
		for(j=0;j<COL;j++)
		{
			//A的第i行,点乘B的第j列,元素个数是p个 
			C[i][j]=0;
			for(k=0;k<P;k++)
			{
				C[i][j]+=A[i][k]*B[k][j];
			}
		}
	}
}

void print(int C[ROW][COL])
{//输出二维数组中数据 
	int i,j;
	for(i=0;i<ROW;i++)
	{
		for(j=0;j<COL;j++)
		{
			printf("%d ",C[i][j]);
		}
		printf("\n");
	}
}

int main(  )
{
	Multiple(A,B,C);
	print(C);
	return 0;
}

运行结果:

 

猜你喜欢

转载自blog.csdn.net/weixin_43917370/article/details/108329236