// A 为 m * p 的矩阵,B 为 p * n 的矩阵,那么称 m * n 的矩阵 C 为矩阵 A 与 B 的乘积
#include<stdio.h>
#include<stdlib.h>
#define M 4
#define P 5
#define N 6
void main()
{
int i, j, k;
//二维数组A和B求乘积,积放在数组C中
int A[M][P], B[P][N], C[M][N] = { 0 };
//输入二维数组A的元素的值
printf("请输入矩阵A的元素:");
for (i = 0;i < M;i++)
{
for (j = 0;j < P;j++)
{
scanf("%d", &A[i][j]);
}
}
printf("\n");
//打印二维数组A的元素
printf("矩阵A如下:\n");
for (i = 0;i < M;i++)
{
for (j = 0;j < P;j++)
{
printf("%3d", A[i][j]);
}
printf("\n");
}
printf("\n");
//输入二维数组B的元素的值
printf("请输入矩阵B的元素:");
for (i = 0;i < P;i++)
{
for (j = 0;j < N;j++)
{
scanf("%d", &B[i][j]);
}
}
printf("\n");
//打印二维数组B的元素
printf("矩阵B如下:\n");
for (i = 0;i < P;i++)
{
for (j = 0;j < N;j++)
{
printf("%3d", B[i][j]);
}
printf("\n");
}
//数组相乘
printf("\n矩阵A乘以矩阵B结果为:\n");
for (i = 0;i < M;i++)
{
for (j = 0;j < N;j++)
{
for (k = 0;k < P;k++)
{
C[i][j] = C[i][j] + A[i][k] * B[k][j];
}
}
}
printf("\n");
//数组C中的值分行显示
for (i = 0;i < M;i++)
{
for (j = 0;j < N;j++)
{
printf("%5d", C[i][j]);
}
printf("\n");
}
system("pause");
printf("\n");
}
|