#include <stdio.h>
int main()
{
int arr1[10][10] = { 0 }, arr2[10][10] = { 0 }, arr3[10][10] = { 0 };
int m1, n1, m2, n2, m3, n3;
int i, j, z;
//int x, y;
//int c;
loop:
printf("请分别输入两个矩阵的行数和列数:\n");
scanf_s("%d%d%d%d", &m1, &n1, &m2, &n2);
if ((m1 != n2) || (n1 != m2))
{
printf("这两个矩阵不能进行乘法运算!\n请重新输入:\n");
goto loop;
}
else
{
printf("输入第一个矩阵:\n");
for (i = 0; i < m1;i++)
for (j = 0; j < n1; j++)
{
scanf_s("%d", &arr1[i][j]);
}
printf("\n");
printf("输入第二个矩阵:\n");
for (i = 0; i < m2; i++)
for (j = 0; j < n2; j++)
{
scanf_s("%d", &arr2[i][j]);
}
printf("\n");
m3 = m1;
n3 = n2;
for (i = 0; i < m1;i++)
for (j = 0; j < m2;j++) //矩阵的乘法运算
for (z = 0; z < m1; z++)
{
arr3[i][z] = arr3[i][z] + arr1[i][j] * arr2[j][z]; //三重循环实现矩阵中的两个元素相乘
}
printf("经乘法运算后得到的矩阵为:\n");
for (i = 0; i < m3; i++)
{
for (j = 0; j < n3; j++)
{
printf("%d ", arr3[i][j]);
}
printf("\n");
}
}
return 0;
}