C语言求两个矩阵的积
时间: 2024-12-17 20:35:10 浏览: 11
在C语言中,计算两个矩阵的乘法(通常称为矩阵相乘)需要满足一定的规则,即第一个矩阵的列数必须等于第二个矩阵的行数。这里是一个简单的示例,说明如何通过嵌套循环来实现两个整型矩阵的乘法:
```c
#include <stdio.h>
#define ROWS firstMatrixRows
#define COLS secondMatrixCols
void multiply(int firstMatrix[ROWS][COLS], int secondMatrix[COLS][COLS], int result[ROWS][COLS]) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
int sum = 0;
for (int k = 0; k < COLS; k++) { // 这里k用于遍历第二个矩阵的列
sum += firstMatrix[i][k] * secondMatrix[k][j];
}
result[i][j] = sum;
}
}
}
// 示例矩阵
int firstMatrix[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int secondMatrix[3][3] = {{9, 8, 7}, {6, 5, 4}, {3, 2, 1}};
int resultMatrix[3][3];
int main() {
multiply(firstMatrix, secondMatrix, resultMatrix);
printf("Matrix multiplication:\n");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", resultMatrix[i][j]);
}
printf("\n");
}
return 0;
}
```
在这个例子中,`multiply`函数接收两个矩阵和结果矩阵作为参数,然后对每个结果矩阵元素执行逐元素相乘并求和的操作。注意,这个程序假设输入矩阵都是方阵,并且只有方阵才能直接相乘。
阅读全文