求C语言3个2*2矩阵相乘的算法其中行列试的每个元素为未知方程.很麻烦的,每个元素为单独的方程
求C语言3个2*2矩阵相乘的算法
其中行列试的每个元素为未知方程.
很麻烦的,每个元素为单独的方程
矩阵乘法学过么?套上公式就好了啊。很麻烦么?
a11*b11+a12*b21 a11*b12+a12*b22
a21*b11+a22*b21 a21*b12+a22*b22
我用数组套的矩阵,然后用矩阵乘法的的公式算A*B*C的
#include
void main()
{
int a[2][2],b[2][2],c[2][2],d[2][2],i,j;
printf("请逐个为矩阵赋值");
for(j=0;jfor(i=0;iscanf("%d",&a[j][i]);//为矩阵a赋值
for(j=0;jfor(i=0;iscanf("%d",&b[j][i]);//为矩阵b赋值
for(j=0;jfor(i=0;iscanf("%d",&c[j][i]);//为矩阵C赋值
d[0][0]=(a[0][0]*b[0][0]+a[0][1]*b[1][0]);//
d[0][1]=(a[0][0]*b[0][1]+a[0][1]*b[1][1]);//
d[1][0]=(a[1][0]*b[0][0]+a[1][1]*b[1][0]);//
d[1][1]=(a[1][0]*b[0][1]+a[1][1]*b[1][1]);//以上四行用矩阵D表示矩阵a*b的值
a[0][0]=(d[0][0]*c[0][0]+d[0][1]*c[1][0]);//
a[0][1]=(d[0][0]*b[0][1]+c[0][1]*b[1][1]);//
a[1][0]=(d[1][0]*b[0][0]+c[1][1]*b[1][0]);//
a[1][1]=(d[1][0]*b[0][1]+c[1][1]*b[1][1]);//以上四行用矩阵a表示d*c的值即a*b*c的值
for(j=0;j{printf("| ");
for(i=0;iprintf("%d ",a[j][i]);//此处为输出矩阵a*b*c,你可以拿笔算一下,以上经过vc++6.0测试,且用笔算之后与结果相同
printf("|\n");