思路:
首先,根据输入描述,我们可以得知矩阵A的行数是n,列数是m,矩阵B的行数是m,列数是k。
然后,我们需要创建一个n行k列的矩阵C来保存结果。
接下来,遍历A的每一行和B的每一列,将对应位置的元素相乘并累加到C的对应位置上。
最后,输出矩阵C。
代码实现如下:#include <stdio.h>void matrix_multiply(int n, int m, int k, int A[n][m], int B[m][k], int C[n][k]) { for (int i = 0; i < n; i++) { for (int j = 0; j < k; j++) { C[i][j] = 0; // 初始化C矩阵的对应位置为0 for (int x = 0; x < m; x++) { C[i][j] += A[i][x] * B[x][j]; // 累加乘积结果到C矩阵的对应位置上 } } }}int main() { int n, m, k; scanf("%d %d %d", &n, &m, &k); int A[n][m]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { scanf("%d", &A[i][j]); } } int B[m][k]; for (int i = 0; i < m; i++) { for (int j = 0; j < k; j++) { scanf("%d", &B[i][j]); } } int C[n][k]; matrix_multiply(n, m, k, A, B, C); for (int i = 0; i < n; i++) { for (int j = 0; j < k; j++) { printf("%d ", C[i][j]); } printf("\n"); } return 0;}
这样,我们就可以计算出两个矩阵的乘积并输出结果了。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |