矩阵相乘
#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];:定义了三个二维整型数组,- a、- b、- c,数组大小都设定为- 105×105,在实际应用中可以根据具体要处理的数据规模进行调整,但这种固定大小的定义方式要注意避免越界访问问题。这里- a和- b用于存储输入的数据,- c用于存储计算结果。
- memset(c, 0, sizeof(c));:使用- memset函数将二维数组- c的所有元素初始化为 0。- memset函数按字节对给定的内存区域进行填充,第一个参数是要填充的内存起始地址(这里是数组- c),第二个参数是要填充的值(0 表示将字节都填充为 0,对于整型数组来说就是将每个元素初始化为 0),第三个参数是要填充的内存区域的总字节数(通过- sizeof(c)获取数组- c的大小对应的字节数)。

 投递百度等公司10个岗位
投递百度等公司10个岗位