n阶矩阵相乘
# include<stdio.h>
int main()
{
int n,i,j,k;
scanf("%d",&n);
int a[n][n],b[n][n],c[n][n];
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
scanf("%d",&b[i][j]);
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
c[i][j]=0;
for(k=1;k<=n;k++)
{
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf("%d ",c[i][j]);
}
printf("\n");
}
return 0;
}
矩阵nm乘以矩阵ms
# include<stdio.h>
int main()
{
int n,i,j,k,m1,m2,s;
printf("由矩阵乘法知识知,矩阵若要相乘必须使m1=m2\n请输入能使m1和m2相等的数\n");
scanf("%d%d%d%d",&n,&m1,&m2,&s);
int a[n][m1],b[m2][s],c[n][s];
if(m1==m2)
{
for(i=1;i<=n;i++)
{
for(j=1;j<=m1;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=1;i<=m2;i++)
{
for(j=1;j<=s;j++)
{
scanf("%d",&b[i][j]);
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=s;j++)
{
c[i][j]=0;
for(k=1;k<=m1;k++)
{
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=s;j++)
{
printf("%d ",c[i][j]);
}
printf("\n");
}
}
else
printf("输入不符合要求\n");
return 0;
}