3个二维数组相乘怎么用c语言表示
时间: 2024-10-16 18:16:20 浏览: 30
在C语言中,计算三个二维数组相乘(也称为矩阵乘法)通常涉及到逐元素的乘法和累加。由于三个数组相乘不是传统的两个数相乘,我们需要将第一个数组的行与第二个数组的列对应位置的元素相乘,然后将结果相加得到第三个矩阵的一个元素。这里是一个简单的示例:
```c
#include <stdio.h>
#define ROW1 2
#define COL1 3
#define ROW2 3
#define COL2 4
#define ROW3 (ROW1 * COL2)
int main() {
int arr1[ROW1][COL1] = {{1, 2, 3}, {4, 5, 6}}; // 第一个2x3矩阵
int arr2[ROW2][COL2] = {{7, 8, 9, 10}, {11, 12, 13, 14}, {15, 16, 17, 18}}; // 第二个3x4矩阵
int arr3[ROW1][COL3] = {0}; // 用于存放结果的3x6矩阵
for (int i = 0; i < ROW1; i++) {
for (int j = 0; j < COL2; j++) {
for (int k = 0; k < ROW2; k++) {
arr3[i][j + k*COL2] += arr1[i][k] * arr2[k][j]; // 三维索引
}
}
}
// 打印结果
printf("Result:\n");
for (int i = 0; i < ROW1; i++) {
for (int j = 0; j < ROW3; j++) {
printf("%d ", arr3[i][j]);
}
printf("\n");
}
return 0;
}
```
这个程序首先声明了三个二维数组,然后使用三层嵌套循环分别遍历这三个维度。注意,结果数组的大小(ROW3)需要根据前两个矩阵的列和行确定。
阅读全文