完成程序,设计实现函数void f(int a[],int b[],int c[],int m,int n,int t),其功能为计算给定的两个整型数组(一个为m行n列,一个为n行t列)的乘积矩阵。 函数接口定义: void f(int a[],int b[],int c[],int m,int n,int t);/*功能为计算给定的矩阵a(m行n列)和矩阵b(n行t列)的乘积矩阵c*/ 裁判测试程序样例: #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"); } } 输入格式: 首先输入整型数组a[3][4]的各元素的值,再输入整型数组b[4][3]的各元素的值,数据中间以空格为间隔。 输出格式: 对于输入的a数组和b数组,输出a和b的乘积矩阵c[3][3],其中每个元素显示格式为:占5列,右对齐。 输入样例: 1 2 3 4 2 3 4 5 3 4 5 6 1 2 3 2 3 4 3 4 5 4 5 6 输出样例: 30 40 50 40 54 68 50 68 86
时间: 2024-01-20 10:02:12 浏览: 65
```c
#include <stdio.h>
void f(int a[], int b[], int c[], int m, int n, int t) {
for (int i = 0; i < m; i++) {
for (int j = 0; j < t; j++) {
int sum = 0;
for (int k = 0; k < n; k++) {
sum += a[i * n + k] * b[k * t + j];
}
c[i * t + j] = sum;
}
}
}
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;
}
```
阅读全文