酷代码 AI
菜单
服务商

题目描述 计算两个矩阵的乘法。n*m阶的矩阵A乘以m*k阶的矩阵B得到的矩阵C 是n*k阶的,且C[i][j] = A[i][0]*B[0][j] + A[i][1]*B[1][j] + …… +A[i][m-1]*B[m-1][j](C[i][j]表示C矩阵中第i行第j列元素)。 输入格式 第一行为n, m, k,表示A矩阵是n行m列,B矩阵是m行k列,n, m, k均小于100。 然后先后输入A和B两个矩阵,A矩阵n行m列,B矩阵m行k列,矩阵中每个元素的绝对值不会大于1000。 输出格式 输出矩阵C,一共n行,每行k个整数,整数之间以一个空格分开。 输入样例 3 2 3 1 1 1 1 1 1 1 1 1 1 1 1 输出样例 2 2 2 2 2 2 2 2 2 说明/提示 用c++

```cpp #include <iostream> using namespace std; const int MAXN = 100; int main() { int n, m, k; cin >> n >> m >> k; int A[MAXN][MAXN], B[MAXN][MAXN], C[MAXN][MAXN]; // 输入矩阵 A for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cin >> A[i][j]; } } // 输入矩阵 B for (int i = 0; i < m; i++) { for (int j = 0; j < k; j++) { cin >> B[i][j]; } } // 计算矩阵 C for (int i = 0; i < n; i++) { for (int j = 0; j < k; j++) { C[i][j] = 0; for (int p = 0; p < m; p++) { C[i][j] += A[i][p] * B[p][j]; } } } // 输出矩阵 C for (int i = 0; i < n; i++) { for (int j = 0; j < k; j++) { if (j != k - 1) { cout << C[i][j] << " "; } else { cout << C[i][j]; } } cout << endl; } return 0; } ``` 代码解释 1. 输入矩阵阶数:首先读取三个整数 `n`、`m`、`k`,分别表示矩阵 `A` 的行数、列数以及矩阵 `B` 的列数(矩阵 `B` 的行数等于矩阵 `A` 的列数 `m`)。 2. 输入矩阵元素:使用嵌套的 `for` 循环分别读取矩阵 `A` 和矩阵 `B` 的元素。 3. 矩阵乘法计算:通过三重嵌套的 `for` 循环计算矩阵 `C` 的元素。外层两层循环遍历矩阵 `C` 的每一个位置 `(i, j)`,最内层循环根据矩阵乘法规则 `C[i][j] = A[i][0]*B[0][j] + A[i][1]*B[1][j] + …… +A[i][m-1]*B[m-1][j]` 进行累加计算。 4. 输出矩阵 C:使用嵌套的 `for` 循环输出矩阵 `C` 的元素,每行元素之间用空格分隔,每行最后一个元素后不输出额外空格,每行结束后换行。 [2025-12-01 14:07:42 | AI问答 | 639点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多