c语言 矩阵2行3列和3行2列相乘的值例如a[2][3]={2,3,4,5,6,7}b[3][2]={1,4,2,5,3,6}过程a[2][3]*b[3][2]

我想请问一下,c语言 矩阵2行3列和3行2列相乘的值例如a[2][3]={2,3,4,5,6,7}b[3][2]={1,4,2,5,3,6}过程a[2][3]*b[3][2]
最新回答
谁人都相处来

2024-07-01 02:17:19

int c[2][2] ;
int mulmat(int *a,int *b,int *c,int m,int n,int q)
{
int i,j,k;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
*(c +i*m+j)=0;
for(k=0;k<q;k++)
*( c+i*m+j )+=*(a+i*n+k) * (*(b+j+ k*q);
}
}
}
int main()
{
int i,j;
int success =mulmat(a[0],b[0],c[0],2,3);

if(sucess )for(i=0;i<2;i++)
for(j=0;j<2;j++){
if(j==0)printf("%d" c[i][j]);
else printf(",%d",c[i][j]);
}
printf("\n");

};
}
梨花雨凉

2024-07-01 09:28:09

这个应该这么写

for(int i =0;i<m*n;i++)//m*n是数组大小。比如a[m][n] b[x][y] 根据题目来说m*n是等于x*y的
{
int a1,a2,b1,b2;
a1=0;a2=0;b1=0;b2=0;//都初始化为0
if(a2>n)
{
a2=0;
a1++;
}
if(b2>y)
{
b2=0;
b1++;
}
a[a1][a2]*b[b1][b2];//这个就是他们的乘法结果
}