用两个二维数组实现数组相乘问题,超时求大神解救,学渣坐等。。。

以下是我写的,但是超时#include<iostream>usingnamespacestd;intmain(){intn,i,j,A[10][10],B[10][10]... 以下是我写的,但是超时
#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;
}
展开
 我来答
zyc
推荐于2016-11-08 · 知道合伙人软件行家
zyc
知道合伙人软件行家
采纳数:328 获赞数:5073
擅长数据通信、路由器组网、C++语言、数据库SQL语言、GP

向TA提问 私信TA
展开全部

按照如下代码测试通过:

#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;
}

结果如下图:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式