2个回答
展开全部
懒得用数组指针了,就随便写了个
/*
编程实现3x5矩阵与5x3矩阵的乘积,用二维数组并用数组指针
*/
#include<iostream>
using namespace std;
int main()
{
int a[3][5],b[5][3],c[3][3];
int i,j,k;
for(i=0;i<3;i++)
for(j=0;j<5;j++)
cin>>a[i][j];
for(i=0;i<5;i++)
for(j=0;j<3;j++)
cin>>b[i][j];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
c[i][j]=0;
for(i=0;i<3;i++)
for(k=0;k<3;k++)
for(j=0;j<5;j++)
c[i][k]+=a[i][j]*b[j][k];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
cout<<c[i][j]<<" ";
cout<<endl;
}
return 0;
}
运行结果:
1 2 3 4 5
2 4 5 6 3
4 5 7 8 9
1 2 3
4 5 6
7 8 9
4 7 3
5 2 4
71 74 74
92 112 105
150 163 165
Press any key to continue
/*
编程实现3x5矩阵与5x3矩阵的乘积,用二维数组并用数组指针
*/
#include<iostream>
using namespace std;
int main()
{
int a[3][5],b[5][3],c[3][3];
int i,j,k;
for(i=0;i<3;i++)
for(j=0;j<5;j++)
cin>>a[i][j];
for(i=0;i<5;i++)
for(j=0;j<3;j++)
cin>>b[i][j];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
c[i][j]=0;
for(i=0;i<3;i++)
for(k=0;k<3;k++)
for(j=0;j<5;j++)
c[i][k]+=a[i][j]*b[j][k];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
cout<<c[i][j]<<" ";
cout<<endl;
}
return 0;
}
运行结果:
1 2 3 4 5
2 4 5 6 3
4 5 7 8 9
1 2 3
4 5 6
7 8 9
4 7 3
5 2 4
71 74 74
92 112 105
150 163 165
Press any key to continue
展开全部
二维数组动态空间的申请原则:
申请的时候从外层往里层,逐层申请;
释放的时候从里层往外层,逐层释放。
举例:
double **power;
int i,j;
power = (double **)malloc(sizeof(double) *3);
for(i =0; i< 3;i++)
{
power[i] = (double *)malloc(sizeof(double) * 10);
}
//....
for(i=0;i<3;i++)
{
free(power[i]);
}
free(power);
至于乘法运算很简单了。for循环就可以搞定了
申请的时候从外层往里层,逐层申请;
释放的时候从里层往外层,逐层释放。
举例:
double **power;
int i,j;
power = (double **)malloc(sizeof(double) *3);
for(i =0; i< 3;i++)
{
power[i] = (double *)malloc(sizeof(double) * 10);
}
//....
for(i=0;i<3;i++)
{
free(power[i]);
}
free(power);
至于乘法运算很简单了。for循环就可以搞定了
参考资料: http://www.leyond.info/dynamic-memory-allocation-for-multi-dimension-array-in-c/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询