#include<stdio.h>
#include<malloc.h>
#include<string.h>
int main()
{
int **p1,**p2,**p;
int a,b,c;
int i,j,k;
scanf("%d%d%d",&a,&b,&c); //输入一个a*b 和 b*c的矩阵,做矩阵相乘。
p1=(int **)malloc(sizeof (int*)*a);
p2=(int **)malloc(sizeof (int*)*b);
p=(int **)malloc(sizeof (int*)*a);
for(k=0;k<a;k++)
{
p1[k]=(int *)malloc (sizeof(int)*b);
}
for(k=0;k<b;k++)
{
p2[k]=(int *)malloc (sizeof(int)*c);
}
for(k=0;k<a;k++)
{
p[k]=(int *)malloc (sizeof(int)*c);
}
for(i=0;i<a;i++)
{
for(j=0;j<b;j++)
{
scanf("%3d",&p1[i][j]);
}
}
for(i=0;i<b;i++)
{
for(j=0;j<c;j++)
{
scanf("%3d",&p2[i][j]);
}
}
printf("\n");
for(i=0;i<a;i++)
{
for(j=0;j<b;j++)
{
printf("%3d",p1[i][j]);
}
printf("\n");
}
printf("\n");
for(i=0;i<b;i++)
{
for(j=0;j<c;j++)
{
printf("%3d",p2[i][j]);
}
printf("\n");
}
for(i=0;i<a;i++)
{
for(j=0;j<c;j++)
{
p[i][j]=0;
}
}
for(i=0;i<a;i++)
{
for(j=0;j<c;j++)
{
for(k=0;k<b;k++)
{
p[i][j]+=p1[i][k]*p2[k][j];
}
}
}
printf("\n");
for(i=0;i<a;i++)
{
for(j=0;j<c;j++)
{
printf("%3d",p[i][j]);
}
printf("\n");
}
return 0;
}
动态申请二维数组做矩阵乘法
最新推荐文章于 2022-05-20 11:23:41 发布