#include <stdio.h> /* 请在这里填写答案 */ int main(){ int i,j,a[3][4],b[4][3],c[3][3]; for(i=0; i<3; i++) for(j=0; j<4; j++) scanf("%d",&a[i][j]); for(i=0; i<4; i++) for(j=0; j<3; j++) scanf("%d",&b[i][j]); f(a[0],b[0],c[0],3,4,3); for(i=0; i<3; i++){ for(j=0; j<3; j++) printf("%5d",c[i][j]); printf("\n"); } }
时间: 2024-01-15 18:03:39 浏览: 115
(完整word版)大学C语言考试题库(含标准答案).doc
这段代码中缺少函数 `f` 的定义。需要添加函数 `f` 的定义,如下所示:
```c
#include <stdio.h>
void f(int *a, int *b, int (*c)[3], int m, int n, int p) {
int i, j, k;
for (i = 0; i < m; i++) {
for (j = 0; j < p; j++) {
c[i][j] = 0;
for (k = 0; k < n; k++) {
c[i][j] += a[i * n + k] * b[k * p + j];
}
}
}
}
int main() {
int i, j, a[3][4], b[4][3], c[3][3];
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
scanf("%d", &a[i][j]);
}
}
for (i = 0; i < 4; i++) {
for (j = 0; j < 3; j++) {
scanf("%d", &b[i][j]);
}
}
f(a[0], b[0], c, 3, 4, 3);
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
printf("%5d", c[i][j]);
}
printf("\n");
}
return 0;
}
```
这个程序的作用是实现矩阵乘法,输入两个矩阵 `a` 和 `b`,输出它们的乘积 `c`,其中 `a` 是一个 3x4 的矩阵,`b` 是一个 4x3 的矩阵,`c` 是一个 3x3 的矩阵。
阅读全文