用两个二维数组实现数组相乘问题,超时求大神解救,学渣坐等。。。
#include<iostream>
using namespace std;
int main()
{
int n,i,j,A[10][10],B[10][10],C[10][10];
while(cin>>n,n)
{
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>A[i][j];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
cin>>B[i][j];
}
for (j=0;j<n;j++)
for(i=0;i<n;i++)C[j][i]= 0;
for(j=0;j<n;j++){
for(i=0;i<n;i++){
for(int k=0;k<n;k++)
C[j][i]+= A[j][k]*B[k][i];
}
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(j==n-1)
cout<<C[i][j]<<endl;
else
cout<<C[i][j]<<" ";
}
return 0;
} 展开
推荐于2016-11-08 · 知道合伙人软件行家
按照如下代码测试通过:
#include<iostream>
using namespace std;
int main()
{
int n=0,i=0,j=0;
double A[10][10],B[10][10],C[10][10];
cout<<"请输入方阵的阶数(小于10):";
cin>>n;
cout<<"请输入方阵的数据(空格隔开)"<<endl;
for(i=0;i<n;i++)for(j=0;j<n;j++){cin>>A[i][j];if(j==n-1)cout<<endl;}
for(i=0;i<n;i++)for(j=0;j<n;j++){cin>>B[i][j];if(j==n-1)cout<<endl;}
for(i=0;i<n;i++)for(j=0;j<n;j++)C[i][j]=0;
for(i=0;i<n;i++)for(j=0;j<n;j++){for(int k=0;k<n;k++)C[i][j]+= A[i][k]*B[k][j];}
cout<<"矩阵乘积=:"<<endl;
for(i=0;i<n;i++)for(j=0;j<n;j++){cout<<C[i][j]<<" ";if(j==n-1)cout<<endl;}
system("pause");
return 0;
}
结果如下图: