请教一个数组相乘的问题
做练习的时候,有一个数组相乘的题目,编程代码如下:#include"stdio.h"
#include"math.h"
void main()
{
int a[2][4]={{1,2,3},{4,5,6}},b[3][2]={{1,4},{2,5},{3,6}};
int c[2][2]={0},i,j,k;
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
{
for(k=0;k<3;k++)
{
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}
}
}
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
{
printf("%5d",c[i][j]);
}
printf("\n");
}
}
以上代码分析了很久,我明白了一些问题,首先数组C的行和列应该等于数组A的行和B的列,另外在循环关系中我发现一个问题,这里面的K等于数组A的列和B的行,在这个题目里面A的列和B的行是相等的,都是等于3,那么这个相乘的题目就简单了,如果A的列和B的行,不相等的情况下,这个题目代码应该如何编写呢?比如说:a[2][4]={{1,2,3,4},{4,5,6,7}}的时候,我自己试了一下,将K的循环写成for(k=0;k<4;k++)和k<3;k++的结果完全不同,请各位指点.