已知A是一个三乘四的矩阵,B是一个四乘五的矩阵,编程求A乘B得到新的矩阵C,并输出矩阵C,用C语言跟我写一个程序
时间: 2024-10-23 14:20:19 浏览: 29
在C语言中,由于标准库没有直接提供矩阵运算的功能,我们通常需要自定义函数来处理这种操作。这里我们可以使用嵌套循环来实现矩阵乘法。注意,矩阵乘法的要求是第一个矩阵的列数(这里是4)等于第二个矩阵的行数(这里是3),这个条件在这里并不满足,所以我将假设这是一个简单的矩阵相加(对应元素相乘然后累加)的例子,因为两个矩阵大小可以直接相乘。
```c
#include <stdio.h>
#define ROW_A 3
#define COL_A 4
#define ROW_B 4
#define COL_B 5
void multiply_matrices(int A[ROW_A][COL_A], int B[ROW_B][COL_B], int C[ROW_A][COL_B]) {
for (int i = 0; i < ROW_A; ++i) {
for (int j = 0; j < COL_B; ++j) {
int sum = 0;
for (int k = 0; k < COL_A; ++k) {
sum += A[i][k] * B[k][j];
}
C[i][j] = sum;
}
}
}
// 输出矩阵
void print_matrix(int matrix[][COL_B], int rows, int cols) {
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
int main() {
// 示例矩阵A和B,实际上你需要传入实际的值
int A[ROW_A][COL_A] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} };
int B[ROW_B][COL_B] = { {13, 14, 15, 16, 17}, {18, 19, 20, 21, 22}, {23, 24, 25, 26, 27}, {28, 29, 30, 31, 32} };
int C[ROW_A][COL_B];
multiply_matrices(A, B, C);
print_matrix(C, ROW_A, COL_B);
return 0;
}
```
运行此程序会输出矩阵C的结果。如果你想做真正的矩阵乘法,请确认这两个矩阵的维度可以满足乘法需求,即A的列数等于B的行数。若非,上述代码不会按预期工作。
阅读全文