C语言,完成程序,设计实现函数void f(int a0.int bü,int cü,int m,int n,int t),其功能为计算给定的两个整型数组 (一个为m行n列,一个为n行t列)的乘积矩阵。 函数接口定义: 1 void f(int a[],int b[],int c(],int m,int n,int t);/*功能为计算给定的矩阵0(m行列)和矩阵b(n行t列) 裁判测试程序样例: 123456 #include cstdio.h> /*请在这里填写答案*/ int main(){ 7 8 9 10 11 12 13 14 15 16 17 18 19 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[o],b[0],c[o],3,4,3); for(i=0; i<3; i++){ for(j=0; j<3; j++) printf("%5d",c[i][j]);printf("\n"); 输入格式: 首先输入整型数组a[3][4]的各元素的值,再输入整型数组b[4][3]的各元素的值,数据中间以空格为间隔。 输出格式: 对于输入的a数组和b数组,输出a和b的乘积矩阵c[3][3],其中每个元素显示格式为:占5列,右对齐。
时间: 2024-01-20 21:02:31 浏览: 38
以下是程序实现:
```c
#include <stdio.h>
void f(int a[], int b[], int c[], int m, int n, int t) {
int i, j, k;
for (i = 0; i < m; i++) {
for (j = 0; j < t; j++) {
int temp = 0;
for (k = 0; k < n; k++) {
temp += a[i * n + k] * b[k * t + j];
}
c[i * t + j] = temp;
}
}
}
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");
}
return 0;
}
```
注意在 `f` 函数中使用了一维数组表示二维数组,需要进行计算下标的转换。在主函数中使用二维数组输入和输出。