输入整数m、p、n,再输入一个m行p列的整数矩阵A和一个p行n列的整数矩阵B,求两个矩阵的乘积AB
时间: 2024-04-30 08:18:31 浏览: 119
以下是 Python 代码实现:
```python
m, p, n = map(int, input().split())
A = []
for i in range(m):
row = list(map(int, input().split()))
A.append(row)
B = []
for i in range(p):
row = list(map(int, input().split()))
B.append(row)
# 计算矩阵乘积
C = [[0] * n for _ in range(m)]
for i in range(m):
for j in range(n):
for k in range(p):
C[i][j] += A[i][k] * B[k][j]
# 输出结果
for i in range(m):
print(' '.join(str(x) for x in C[i]))
```
代码思路如下:
1. 首先读入三个整数 m、p、n;
2. 然后读入一个 m 行 p 列的整数矩阵 A 和一个 p 行 n 列的整数矩阵 B;
3. 声明一个 m 行 n 列的矩阵 C,用于存储乘积的结果;
4. 对于 C 的每个元素,都遍历 A 的对应行和 B 的对应列,计算乘积并累加;
5. 输出 C 中的所有元素。
注意,代码中使用了列表推导式和 join 函数,可以简化代码。
相关问题
输入一个整数a,输出由a构成m行n列的矩阵,C语言
的实现如下:
```c
#include <stdio.h>
int main() {
int a, m, n;
printf("请输入整数a:");
scanf("%d", &a);
printf("请输入矩阵的行数m和列数n:");
scanf("%d %d", &m, &n);
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", a);
}
printf("\n");
}
return 0;
}
```
首先输入整数a和矩阵的行数m和列数n,然后用两重循环输出矩阵,外层循环控制行数,内层循环控制列数,每次输出整数a并在后面加一个空格,最后换行。
输入一个整数a,输出由a构成m行n列的矩阵用C语言
实现。
#include <stdio.h>
int main() {
int a, m, n;
printf("请输入整数a、矩阵的行数m和列数n:\n");
scanf("%d%d%d", &a, &m, &n);
printf("构成的矩阵为:\n");
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", a);
}
printf("\n");
}
return 0;
}
运行结果:
请输入整数a、矩阵的行数m和列数n:
3 4 5
构成的矩阵为:
3 3 3 3 3
3 3 3 3 3
3 3 3 3 3
3 3 3 3 3
阅读全文