A-A+

请编写函数fun 函数的功能是:将3行4列矩阵x乘以4行3列矩阵y 结果放在 3行3列矩阵x

2022-08-12 18:24:04 问答库 阅读 197 次

问题详情

请编写函数fun,函数的功能是:将3行4列矩阵x乘以4行3列矩阵y,结果放在 3行3列矩阵xy中。矩阵相乘的基本方法是:矩阵xy中行列下标分别为i、j的元素的值,是矩阵x中第i行上4个元素与矩阵y中第j列上4个元素对应相乘的和。 注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 include <conio.h> include <stdio.h> void fun(int a[3][4],int b[4][3],int ab[3][3]) { } main() {int x[3][4]={{1,0,1,1},{2,1,0,1},{1,2,0,3}}; int y[4][3]={{1,1,1},{0,0,0},{2,1,1},{1,1,3}}; int xy[3][3]={0},i,j; clrscr(); fun(x,y,xy); printf("a x b=ab:(3,3):"); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%d",xy[i][j]); printf("n"): } NONO();/*本函数与考生答题无关,考生不得改动,否则后果自负。*/ }请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:void fun (int a[3][4]int b[4][3]int ab[3][3]{ int jk1;for(k=0;k<3;k++)for(1=0;1<3;1++)for(j=0; j<4; j++)ab[k][1]+=a[k][j]*b[j][1];}
voidfun(inta[3][4],intb[4][3],intab[3][3]{intj,k,1;for(k=0;k<3;k++)for(1=0;1<3;1++)for(j=0;j<4;j++)ab[k][1]+=a[k][j]*b[j][1];}

考点:矩阵,函数