
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]
2个回答
展开全部
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");
};
}
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");
};
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个应该这么写
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];//这个就是他们的乘法结果
}
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];//这个就是他们的乘法结果
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询