矩阵相乘
void jc(int *a,int *b,int *c,int m,int n)
{int i,j,k,x,y,l;
for(i=0;i <n;i++)
for(j=0;j <n;j++)
for(k=0;k <m;k++)
*(c+i*n+j)+=*(a+m*i+k)*(*(b+n*k+j));
}
main()
{int a[4][2],b[2][4],c[2][2]={0},i,j;
printf( "input a:\n ");
for(i=0;i <4;i++)
for(j=0;j <2;j++)
scanf( "%d ",&a[i][j]);
printf( "input b:\n ");
for(i=0;i <2;i++)
for(j=0;j <4;j++)
scanf( "%d ",&b[i][j]);
jc(&a[0][0],&b[0][0],&c[0][0],4,2);
for(i=0;i <2;i++)
{for(j=0;j <2;j++)
printf( "%d ",c[2][2]);
printf( "\n ");
}
}
矩阵相乘,这个程序得不出正确结果 ,请帮忙找一下原因
[解决办法]
楼主是要做a*b还是b*a啊?
两者的顺序直接导致结果不一样啊