本程序演示矩阵的乘法。
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;
}
运行结果: