用c加加实现一个函数multi,且使用数组,其可以实现对输入的两个任意大小的矩阵相乘,通过主函数调用该函数,并输出结果
时间: 2024-05-16 17:14:26 浏览: 82
以下是使用数组实现矩阵相乘的multi函数的代码:
```c++
#include <stdio.h>
void multi(int a[][100], int b[][100], int c[][100], int m, int n, int p) {
for (int i = 0; i < m; i++) {
for (int j = 0; j < p; j++) {
c[i][j] = 0;
for (int k = 0; k < n; k++) {
c[i][j] += a[i][k] * b[k][j];
}
}
}
}
int main() {
int a[100][100], b[100][100], c[100][100];
int m, n, p;
printf("Enter the number of rows and columns of matrix A: ");
scanf("%d%d", &m, &n);
printf("Enter the elements of matrix A:\n");
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &a[i][j]);
}
}
printf("Enter the number of rows and columns of matrix B: ");
scanf("%d%d", &n, &p);
printf("Enter the elements of matrix B:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < p; j++) {
scanf("%d", &b[i][j]);
}
}
multi(a, b, c, m, n, p);
printf("The result of matrix multiplication is:\n");
for (int i = 0; i < m; i++) {
for (int j = 0; j < p; j++) {
printf("%d ", c[i][j]);
}
printf("\n");
}
return 0;
}
```
在该程序中,multi函数接受三个参数:两个输入矩阵 a 和 b,以及输出矩阵 c。m、n、p 是矩阵的行数和列数,其中 n 是两个矩阵中相同的维度。在主函数中,先输入两个矩阵 a 和 b,然后将它们传递给 multi 函数进行相乘,并将结果存储在矩阵 c 中。最后,程序输出矩阵 c。
阅读全文