二维数组与一维数组的本质区别
#include<stdio.h>void jc(int *a,int *b,int *c,int m,int n)
{int i,j,k;
for(i=0;i<m;i++)
for(j=0;j<m;j++)
{*(c+i*n+j)=0;
for(k=0;k<n;k++)
*(c+i*n+j)+=*(a+i*n+k)*(*(b+k*m+j));
}
}
main()
{int a[2][4],b[4][2],c[2][2],i,j;
printf("input a:\n");
for(i=0;i<2;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
printf("input b:\n");
for(i=0;i<4;i++)
for(j=0;j<2;j++)
scanf("%d",&b[i][j]);
jc(&a[0][0],&b[0][0],&c[0][0],2,4);
printf("the result is :\n");
for(i=0;i<2;i++)
{for(j=0;j<2;j++)
printf("%d ",c[2][2]);
printf("\n");
}
}
这个程序不能正确的实现矩阵相乘,我觉得是一维数组 与二维数组 的区别所致,请大虾们指教