你这写的是两个二维数组相乘,我想要三个二维数组相乘
时间: 2024-10-15 12:05:02 浏览: 13
对于三个二维数组相乘(通常在数学上被称为三阶张量乘),你需要使用三次循环来进行计算,因为每次乘法实际上是两次二维数组的点积。这样的操作在编程中并不常见,但可以通过嵌套循环来实现。以下是一个简化的例子,假设我们有三个2x2的数组:
```c
#include <stdio.h>
#define ROW 2
#define COL 2
#define ARRAY_SIZE 2
int main() {
int arr1[ROW][COL] = {{1, 2}, {3, 4}};
int arr2[ROW][ARRAY_SIZE] = {{5, 6}, {7, 8}};
int arr3[ARRAY_SIZE][COL] = {{9, 10}, {11, 12}};
int result[ROW][ARRAY_SIZE][COL] = {0}; // 结果数组
for (int i = 0; i < ROW; ++i) {
for (int j = 0; j < ARRAY_SIZE; ++j) {
for (int k = 0; k < COL; ++k) {
result[i][j][k] = arr1[i][0] * arr2[0][j] * arr3[j][k] +
arr1[i][1] * arr2[1][j] * arr3[j][k];
}
}
}
// 打印结果
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < ARRAY_SIZE; j++) {
for (int k = 0; k < COL; k++) {
printf("%d ", result[i][j][k]);
}
printf("\n");
}
}
return 0;
}
```
请注意,这个例子假设每个数组都是2x2,且第二个和第三个数组的列数相同。实际应用中,你需要根据各个数组的具体维度调整。
阅读全文