矩阵相乘
#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的大小对应的字节数)。

查看7道真题和解析