2、矩阵相乘
输入2×3矩阵A和3×2矩阵B各元素值,计算矩阵A和矩阵B相乘的结果
输入说明:输入整形数组A和数组B,数组元素用空格分隔
输出说明:输出矩阵A*B的结果,矩阵元素之间用空格分隔,数组每行元素用换行分隔
2、矩阵相乘
输入2×3矩阵A和3×2矩阵B各元素值,计算矩阵A和矩阵B相乘的结果
输入说明:输入整形数组A和数组B,数组元素用空格分隔
输出说明:输出矩阵A*B的结果,矩阵元素之间用空格分隔,数组每行元素用换行分隔
#define N 2
#define M 3
#include<stdio.h>
int(* Multiply(int(*arr)[M], int(*brr)[N], int C[N][N]))[N]
{
int i = 0; int k = 0;
for (i = 0; i < N; i++)
{
for (k= 0; k < M; k++)
{
int j = 0; int sum1 = 0;
for (j = 0; j < M; j++)
{
sum1 += arr[i][j] * brr[j][k];
/*sum2 += arr[i][j] * brr[j][1];*/
}
C[i][k] = sum1;
}
}
return &C;
}
int main()
{
int C[N][N] = { 0 };
int A[N][M] = { 0 };
int B[M][N] = { 0 };
int i = 0;
for (i = 0; i < N; i++)
{
int j = 0;
for (j = 0; j < M; j++)
{
scanf("%d", &A[i][j]);
}
}
for (i = 0; i < M; i++)
{
int j = 0;
for (j = 0; j < N; j++)
{
scanf("%d", &B[i][j]);
}
}
int (*p)[N]=Multiply(A, B,C);
for (i = 0; i < N; i++)
{
int j = 0;
for (j = 0; j < N; j++)
{
printf("%d", p[i][j]);
}
printf("\n");
}
return 0;
}