编写一个C程序实现M行K列矩阵与K行N列的矩阵的乘积。设A为M行K列的矩阵,B为K行N列的矩阵,则C=A×B的积为M行N列的矩阵。 矩阵乘法的规则:矩阵C第i行第j列的元素计算公式如下 C ij = k=1 ∑ K A ik B kj 首先读入三个int类型整数M,K,N,其中 1≤M,K,N≤10 然后读入两个矩阵,形式参照测试样例,数字之间只有空格或换行 输出格式要求:"%d " "array C=\n" 输出的每个数字后面跟一个空格
时间: 2024-02-12 21:04:45 浏览: 184
c编写的矩阵乘积
好的,以下是对您的问题的回答,希望能帮到您!
这里是一个实现矩阵乘法的 C 语言程序,您可以参考一下:
```c
#include <stdio.h>
int main()
{
int M, K, N;
int A[10][10], B[10][10], C[10][10];
// 读入矩阵大小
scanf("%d %d %d", &M, &K, &N);
// 读入矩阵 A
for (int i = 0; i < M; i++) {
for (int j = 0; j < K; j++) {
scanf("%d", &A[i][j]);
}
}
// 读入矩阵 B
for (int i = 0; i < K; i++) {
for (int j = 0; j < N; j++) {
scanf("%d", &B[i][j]);
}
}
// 计算矩阵 C
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
C[i][j] = 0;
for (int k = 0; k < K; k++) {
C[i][j] += A[i][k] * B[k][j];
}
}
}
// 输出矩阵 C
printf("%d ", M * N);
printf("array C=\n");
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
printf("%d ", C[i][j]);
}
printf("\n");
}
return 0;
}
```
程序先读入三个整数 M、K 和 N,表示要计算的两个矩阵的大小,然后依次读入矩阵 A 和矩阵 B 的元素,并计算它们的乘积矩阵 C,最后输出矩阵 C。
程序中使用了三重循环来计算矩阵乘积,外层两重循环分别遍历矩阵 C 的所有元素,内层循环用来计算每个元素的值。
注意程序中使用了二维数组来存储矩阵 A、B 和 C,数组的下标从 0 开始。
另外,对于输出格式的要求,程序中使用了 printf 函数来输出格式化的字符串。
希望这个程序能够满足您的需求,如果您还有其他的问题,欢迎随时提出!
阅读全文