#include<stdio.h>
#include<string.h>
int main()
{
int arr[100][100];
int brr[100][100];
int crr[100][100];
int i,j,b;
int n,m,k;
scanf("%d %d %d",&n,&m,&b);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%d",&arr[i][j]);
}
}
for(i=0;i<m;i++)
{
for(j=0;j<b;j++)
{
scanf("%d",&brr[i][j]);
}
}
//输入数组
/*
立足于结果crr数组,它的坐标是i,j。当crr[i][j]个时,这个数据是由
arr数组第i行的所有数据*brr数组第j列数据之和,所以是arr[i][未知1],brr[未知2][j]
然后再来看,未知1==未知2,那么我们就需要一个新的变量k,它的范围是确定的,是<m.三个变量,所以是三重循环
在这个当中变化变得最快的是k,所以k是最里面的
*/
for(i=0;i<n;i++)
{
for(j=0;j<b;j++)
{
for(k=0;k<m;k++)
{
crr[i][j]+=arr[i][k]*brr[k][j];
}
}
}
for(i=0;i<n;i++)
{
for(j=0;j<b;j++)//这里错了,j的范围
{
printf("%d ",crr[i][j]);
}
printf("\n");
}
return 0;
}
oj 1.8编程基础之多维数组 09:矩阵乘法
最新推荐文章于 2024-10-02 16:39:03 发布