矩阵相乘

#include<iostream>

#include<cstring>

using namespace std;

int main()

{

int n,m,p;

int a[105][105],b[105][105],c[105][105];

memset(c,0,sizeof(c));

cin>>n>>m;

for(int i=1;i<=n;i++)

{

for(int j=1;j<=m;j++)

{

cin>>a[i][j];

}

}

cin>>p;

for(int i=1;i<=m;i++)

{

for(int j=1;j<=p;j++)

{

cin>>b[i][j];

}

}

for(int i=1;i<=n;i++)

{

for(int j=1;j<=p;j++)

{

for(int k=1;k<=m;k++)

{

c[i][j]+=a[i][k]*b[k][j];

}

cout<<c[i][j]<<" ";

}

cout<<endl;

}

return 0;

}

  • int main():是 C++ 程序的入口点,整个程序从这里开始执行,函数返回值类型为int,通常返回0表示程序正常结束,返回其他非零值可用于表示程序出现错误等情况。
  • int n, m, p;:声明了三个整型变量,从后续代码可以看出,n表示第一个二维数组a的行数,m表示a的列数同时也是第二个二维数组b的行数,p表示b的列数。
  • int a[105][105], b[105][105], c[105][105];:定义了三个二维整型数组,abc,数组大小都设定为105×105,在实际应用中可以根据具体要处理的数据规模进行调整,但这种固定大小的定义方式要注意避免越界访问问题。这里ab用于存储输入的数据,c用于存储计算结果。
  • memset(c, 0, sizeof(c));:使用memset函数将二维数组c的所有元素初始化为 0。memset函数按字节对给定的内存区域进行填充,第一个参数是要填充的内存起始地址(这里是数组c),第二个参数是要填充的值(0 表示将字节都填充为 0,对于整型数组来说就是将每个元素初始化为 0),第三个参数是要填充的内存区域的总字节数(通过sizeof(c)获取数组c的大小对应的字节数)。
全部评论

相关推荐

大佬带我进大厂:这工资放在全国范围内都很不错了,b站学生和刚进社会的多,别人一个月三四千都要加不少班,你说一个月1w多低,那不是找骂吗,你来深圳对三和大神说一个月一万工资低,看人家揍不揍你
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务