请用C语言代码实现【输入】 本题有多组测试数据。每组测试数据占多行,每组测试数据的格式如下:第一行是两个整数m和l。接下来是第一个矩阵的数据,共m行,每行I个整数。再接下来是第二个矩阵的数据,共l行,每行n个整数。其中,0<m,n,l<200。处理到文件结束。 【输出】 对每个测试数据输出矩阵的布尔积A·B,即共m行,每行n个整数,每行的数与数之间有一个空格(每行最后一个数后面也有一个空格)。
时间: 2024-02-20 09:59:15 浏览: 161
好的,这是一个基于C语言的解法:
```c
#include <stdio.h>
int main() {
int m, l, n;
while (scanf("%d %d", &m, &l) != EOF) {
int a[200][200], b[200][200], c[200][200];
for (int i = 0; i < m; i++) {
for (int j = 0; j < l; j++) {
scanf("%d", &a[i][j]);
}
}
for (int i = 0; i < l; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &b[i][j]);
}
}
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
c[i][j] = 0;
for (int k = 0; k < l; k++) {
c[i][j] += a[i][k] * b[k][j];
}
}
}
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", c[i][j]);
}
printf("\n");
}
}
return 0;
}
```
在主函数中,我们使用了`while (scanf("%d %d", &m, &l) != EOF)`来处理多组输入数据的情况。当没有输入数据时,程序会返回EOF,此时我们可以退出程序的执行。
接下来,我们定义了三个二维数组`a`、`b`和`c`,用于存储输入的两个矩阵和输出的布尔积。我们首先读入第一个矩阵`a`,然后读入第二个矩阵`b`。接着,我们按照布尔积的定义,使用三重循环来计算并存储结果。
最后,我们遍历输出`c`中的元素,按照题目要求输出布尔积即可。
阅读全文