输入整数m、p、n,再输入一个m行p列的整数矩阵A和一个p行n列的整数矩阵B,求两个矩阵的乘积AB 输入格式: 测试数据有多组,处理到文件尾。每组测试数据的第一行输入m、p、n(1<m,p,n<10),接下来分别输入A矩阵和B矩阵。 输出格式: 对于每组测试,输出m行,每行n个整数,表示AB的结果,每行中每两个数据之间留一个空格。
时间: 2024-02-13 15:02:58 浏览: 55
整数矩阵和多项式矩阵求逆的复杂性
好的,那么您需要使用循环来处理多组测试数据。以下是对应的C语言代码:
```c
#include <stdio.h>
int main() {
int m, p, n;
// 不断读入测试数据,直到文件结束
while (scanf("%d%d%d", &m, &p, &n) == 3) {
// 读入矩阵 A
int matrix_a[m][p];
for (int i = 0; i < m; i++) {
for (int j = 0; j < p; j++) {
scanf("%d", &matrix_a[i][j]);
}
}
// 读入矩阵 B
int matrix_b[p][n];
for (int i = 0; i < p; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &matrix_b[i][j]);
}
}
// 计算矩阵 C = A * B
int matrix_c[m][n];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
int value = 0;
for (int k = 0; k < p; k++) {
value += matrix_a[i][k] * matrix_b[k][j];
}
matrix_c[i][j] = value;
}
}
// 输出矩阵 C
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", matrix_c[i][j]);
}
printf("\n");
}
}
return 0;
}
```
希望对您有所帮助!
阅读全文