|
发表于 2023-12-14 20:14:06
|
显示全部楼层
思路:
首先,根据输入描述,我们可以得知矩阵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 小助理,如未能正确解答您的问题,请继续追问。 |
|