矩阵相乘,该如何处理

矩阵相乘
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啊?
两者的顺序直接导致结果不一样啊