用C语言将人为输入的3*3矩阵进行乘法
时间: 2024-10-09 11:01:26 浏览: 46
在C语言中,手动实现3x3矩阵的乘法通常涉及到两层嵌套循环,因为矩阵乘法需要每个元素等于两个矩阵对应行和列相乘再求和的结果。以下是简单的步骤:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 3
// 定义一个3x3矩阵结构体
typedef struct {
int data[ROWS][COLS];
} Matrix;
// 矩阵乘法函数
Matrix multiply(Matrix a, Matrix b) {
Matrix result;
for (int i = 0; i < ROWS; ++i) {
for (int j = 0; j < COLS; ++j) {
result.data[i][j] = 0;
for (int k = 0; k < COLS; ++k) { // 行数等于列数,这里假设a和b都是同维度的
result.data[i][j] += a.data[i][k] * b.data[k][j];
}
}
}
return result;
}
void print_matrix(Matrix matrix) {
for (int i = 0; i < ROWS; ++i) {
for (int j = 0; j < COLS; ++j) {
printf("%d ", matrix.data[i][j]);
}
printf("\n");
}
}
int main() {
Matrix matrixA, matrixB;
// 输入矩阵A和B的数据
for (int i = 0; i < ROWS; ++i) {
for (int j = 0; j < COLS; ++j) {
scanf("%d", &matrixA.data[i][j]);
}
}
for (int i = 0; i < ROWS; ++i) {
for (int j = 0; j < COLS; ++j) {
scanf("%d", &matrixB.data[i][j]);
}
}
Matrix product = multiply(matrixA, matrixB);
printf("Product of matrices:\n");
print_matrix(product);
return 0;
}
```
阅读全文