c语言 高效 矩阵乘法,急求c语言做多个矩阵乘法最优次序的计算过程,并找到对应的连乘次序...

急求c语言做多个矩阵乘法最优次序的计算过程,并找到对应的连乘次序

答案:2  信息版本:手机版

解决时间 2019-10-04 18:09

已解决

2019-10-03 21:17

急求c语言做多个矩阵乘法最优次序的计算过程,并找到对应的连乘次序

最佳答案

2019-10-03 21:54

好几位问此问题了。自己把下面的函数改一下就可以了。 矩阵乘法,只有前矩阵列数等与后矩阵行数的两矩阵才能相乘.结果矩阵大小等于前行后列。 C 语言行列

全部回答

1楼

2019-10-03 23:10

1,若程序定义为三行三列的矩阵,并在主函数中键盘赋值。请编写函数juzhen(int a[][3],int n),函数功能是:使矩阵左下角元素中的值乘以.例如:若矩阵中的值为:

1 9 7

2 3 8

4 5 6

n=3,则矩阵值变为:

1 9 7

6 9 8

12 15 18

注:二维数组下三角元素每行最后元素的列标和该列的列号一致

#include

int juzhen(int a[][3],int n)

{

int i,j;

for (i=1;i<3;i++)

for (j=0;j<=i;j++)

a[i][j]=a[i][j]*n;

}

main()

{

int i,j,a[3][3],m;

clrscr();

printf("please enter 9 numbers :\n");

for (i=0;i<3;i++)

for (j=0;j<3;j++)

scanf("%d",&a[i][j]);

printf("the old ju zhen is:\n");

for (i=0;i<3;i++)

{

for (j=0;j<3;j++)

printf("%3d",a[i][j]);

printf("\n");

}

printf("please enter a int number:\n");

scanf("%d",&m);

juzhen (a,m);

printf("the new ju zhen is:\n");

for (i=0;i<3;i++)

{

for (j=0;j<3;j++)

printf("%3d",a[i][j]);

printf("\n");

}

}

2,请编写函数juzhen,该函数的功能是:将三行四列矩阵x乘以四行三列矩阵y,结果放在三行三列矩阵中。矩阵相乘的基本方法是:矩阵xy中行列下标分别为i,j的元素的值,是矩阵x中第i行上四个元素与矩阵y中第j列上四个元素对应相乘的积。

x和y矩阵原型可运行后看到!

#include

#include

void juzhen (int a[3][4],int b[4][3],int ab[3][3])

{

int i,j,z;

for (i=0;i<3;i++)

for (j=0;j<4;j++)

for (z=0;z<3;z++)

ab[i][z]=ab[i][z]+a[i][j]*b[j][z];

}

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();

juzhen (x,y,xy);

printf("x ju zhen is:\n");

for (i=0;i<3;i++)

{

for (j=0;j<4;j++)

printf("%3d",x[i][j]);

printf("\n");

}

printf("y ju zhen is:\n");

for (i=0;i<4;i++)

{

for (j=0;j<3;j++)

printf("%3d",y[i][j]);

printf("\n");

}

printf("xy ju zhen is:\n");

for (i=0;i<3;i++)

{

for (j=0;j<3;j++)

printf("%3d",xy[i][j]);

printf("\n");

}

}

由于你没有说要求,我就写了两个,这是两道比较精典的求c语言矩阵乘法程序

我要举报

如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

大家都在看

推荐资讯

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值