用两个二维数组存放两个矩阵,大小分别是M*N和N*C,并给定矩阵元素的值(int型),输出它们的乘 积。 输入时,第一行输入M,N和C,中间用空格分开。换行后输入两个矩阵的数据,分行输入,数据之间用空 格分开。 输出:结果矩阵的值,按行分开,数据之间用空格分开。 c语言
时间: 2024-12-20 21:30:37 浏览: 5
java实现的n*n矩阵求值及求逆矩阵算法示例
在C语言中,你可以通过嵌套循环来计算两个二维数组(即矩阵)的乘积,假设第一个矩阵A有M行N列,第二个矩阵B有N行C列。这里是一个基本的算法步骤:
```c
#include <stdio.h>
// 定义矩阵乘法函数
void matrixMultiplication(int M, int N, int C, int A[][N], int B[][C], int result[][C]) {
for (int i = 0; i < M; ++i) { // 遍历行
for (int j = 0; j < C; ++j) { // 遍历列
result[i][j] = 0; // 初始化结果矩阵的元素
for (int k = 0; k < N; ++k) { // 遍历共享列的索引
result[i][j] += A[i][k] * B[k][j]; // 计算对应位置的乘积并累加
}
}
}
}
int main() {
int M, N, C;
scanf("%d %d %d", &M, &N, &C); // 输入矩阵尺寸
int A[M][N], B[N][C], result[M][C]; // 读取矩阵数据
for (int i = 0; i < M; ++i) {
for (int j = 0; j < N; ++j) {
scanf("%d", &A[i][j]); // 输入矩阵A的元素
}
}
for (int i = 0; i < N; ++i) {
for (int j = 0; j < C; ++j) {
scanf("%d", &B[i][j]); // 输入矩阵B的元素
}
}
// 输出结果矩阵
for (int i = 0; i < M; ++i) {
for (int j = 0; j < C; ++j) {
printf("%d ", result[i][j]);
}
printf("\n"); // 每一行结束后换行
}
return 0;
}
```
当你运行这个程序时,按照指示输入矩阵A和矩阵B的维度以及元素值,它会输出这两个矩阵相乘后的结果。
阅读全文