2024-05-01 06:23:14
#include<stdio.h>
int main()
{
double a[100][100],b[100][100],h[100][100];
int m,n,p,q,i,j,k,l,c,d;
scanf("%d %d",&m,&n);//输入行数和列数
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
{
scanf("%lf",&a[i][j]);//输入第一个矩阵
}
}
scanf("%d %d",&p,&q);//输入行数和列数
for(l=0; l<p; l++)
{
for(k=0; k<q; k++)
{
scanf("%lf",&b[l][k]);//输入第二个矩阵
}
}
for(c=0; c<m; c++) //行数小于等于第一个矩阵的行数
{
for(d=0; d<q; d++) //列数小于等于第二个矩阵的列数
{
int sum = 0;
for(k=0; k<n; k++) //第一个矩阵行数和第二个矩阵列数
{
sum +=a[c][k]*b[k][d];//计算
}
h[c][d] = sum;
}
}
for(c=0; c<m; c++)
{
for(d=0; d<q; d++)
{
printf("%.0f ",h[c][d]);//输出
}
printf("\n");
}
return 0;
}
两处错,输入第二个矩阵要用b
然后回去好好翻翻矩阵运算的公式,照着公式算。
然后按楼上说的,每个都括起来,没坏处
2024-05-01 03:40:59
2024-05-01 13:15:16