多測試用例,每組給定 m,n,k (≤50) 及矩陣 A (m×n)、B (n×k),輸出乘積 C = A×B (m×k)。輸入以 0 0 0 結束。
C[i][j] = Σ_{s=0}^{n-1} A[i][s] * B[s][j]
#include <stdio.h>
int a[55][55], b[55][55], c[55][55];
int main() {
int m, n, k;
while (scanf("%d%d%d", &m, &n, &k), m || n || k) {
// 讀入矩陣 A
for (int i = 0; i < m; ++i)
for (int j = 0; j < n; ++j)
scanf("%d", &a[i][j]);
// 讀入矩陣 B
for (int i = 0; i < n; ++i)
for (int j = 0; j < k; ++j)
scanf("%d", &b[i][j]);
// 矩陣乘法
for (int i = 0; i < m; ++i) {
for (int j = 0; j < k; ++j) {
int sum = 0;
for (int s = 0; s < n; ++s)
sum += a[i][s] * b[s][j];
c[i][j] = sum;
}
}
// 輸出結果
for (int i = 0; i < m; ++i) {
for (int j = 0; j < k; ++j)
printf("%d ", c[i][j]);
printf("\n");
}
}
return 0;
}