【发布时间】:2016-05-25 00:25:49
【问题描述】:
我无法理解以下所有代码。我认为我指出的代码的中间部分正在执行乘法,但我不确定,有人可以向我解释一下代码的中间部分要完成什么吗?
我了解数组元素的输入和输出部分,但不了解实际的操作。
我明白这一点:
#include "stdafx.h"
#include<iostream>
using namespace std;
int main()
{
int i,j,k,n;
float a[100][200],t;
cout<<"Enter order of matrix-";
cin>>n;
cout<<"Enter elements of matrix"<<endl;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>a[i][j];
但以下几行令人困惑:
for(i=0;i<n;i++)
{
for(j=n;j<2*n;j++)
{
if(i==j-n)
a[i][j]=1;
else
a[i][j]=0;
}
}
for(i=0;i<n;i++)
{
t=a[i][i];
for(j=i;j<2*n;j++)
a[i][j]=a[i][j]/t;
for(j=0;j<n;j++)
{
if(i!=j)
{
t=a[j][i];
for(k=0;k<2*n;k++)
a[j][k]=a[j][k]-t*a[i][k];
}
}
}
同样,以下几行是可以理解的:
cout<<"\n\nInverse matrix\n\n";
for(i=0;i<n;i++)
{
for(j=n;j<2*n;j++)
cout<<"\t"<<a[i][j];
cout<<"\n";
}
return 0;
}
【问题讨论】:
标签: matrix matrix-multiplication