c语言实现两个矩阵相乘
时间: 2023-07-13 07:04:38 浏览: 47
实现两个矩阵相乘的C语言代码如下:
```c
#include <stdio.h>
int main()
{
int m1, n1, m2, n2, i, j, k;
printf("Enter the number of rows and columns of matrix 1: ");
scanf("%d %d", &m1, &n1);
printf("Enter the number of rows and columns of matrix 2: ");
scanf("%d %d", &m2, &n2);
if (n1 != m2) {
printf("Error: The number of columns of matrix 1 must be equal to the number of rows of matrix 2.\n");
return 0;
}
int a[m1][n1], b[m2][n2], c[m1][n2];
printf("Enter the elements of matrix 1:\n");
for (i = 0; i < m1; i++) {
for (j = 0; j < n1; j++) {
scanf("%d", &a[i][j]);
}
}
printf("Enter the elements of matrix 2:\n");
for (i = 0; i < m2; i++) {
for (j = 0; j < n2; j++) {
scanf("%d", &b[i][j]);
}
}
for (i = 0; i < m1; i++) {
for (j = 0; j < n2; j++) {
c[i][j] = 0;
for (k = 0; k < n1; k++) {
c[i][j] += a[i][k] * b[k][j];
}
}
}
printf("The result of matrix multiplication is:\n");
for (i = 0; i < m1; i++) {
for (j = 0; j < n2; j++) {
printf("%d ", c[i][j]);
}
printf("\n");
}
return 0;
}
```
运行程序后,按照提示输入两个矩阵的行列数和元素,程序将计算并输出两个矩阵的乘积。需要注意的是,输入的两个矩阵必须满足第一个矩阵的列数等于第二个矩阵的行数,否则程序会输出错误信息。