使用距离矩阵存储点之间的距离并找到最近的邻居

时间:2012-12-02 22:18:09

标签: c++ arrays multidimensional-array distance

我需要帮助完成作业。我生成了两个平行数组来保持8个点的位置(一个保持x坐标,一个保持y坐标)。然后,用户输入这些点的坐标。到目前为止,我的代码完全正常运行,但这是我需要帮助的地方:

我必须计算每对点之间的距离,然后将距离存储在2d数组中。在这之后我必须逐行打印距离数组。

这样做之后我必须接着使用距离矩阵(2d数组)来找到每个点的最近邻居。

感谢任何帮助,如果我需要详细说明,请告诉我。

这是我目前的代码,我不知道从哪里开始。

double distance(double x1,double y1,double x2 ,double y2)
{
double distance;

distance = sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1));

return distance;
}

int main()
{
double xPoint[6];
double yPoint[6];
double matrix[6][6];

for(int i=0; i<6; i++)
{
    cout << "Enter the x coordinate for position " << i << ": " << endl;
    cin >> xPoint[i];
    cout << "Enter the y coordinate for position " << i << ": " << endl;
    cin >> yPoint[i];
}

for(int x =0; x<6; x++)
{
    for(int y=0; y<6; y++)
    {
        matrix[x][y] = distance()
    }
}

1 个答案:

答案 0 :(得分:0)

#include <iostream>
#include<cmath>
using namespace std;

/*double distance(double x1,double y1,double x2 ,double y2)
 {
double x;

x= sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1));

return x;
 }
*/
int main()
 {
double xPoint[6];
 double yPoint[6];
// double matrix[6][6];

 for(int i=0; i<6; i++)
    {
cout << "Enter the x coordinate for position " << i << ": " << endl;
cin >> xPoint[i];
cout << "Enter the y coordinate for position " << i << ": " << endl;
cin >> yPoint[i];
 }

  for(int i=0; i<5; i++)
   {
  // for(int i=0; i<6; i++){
double X=sqrt(pow(xPoint[i+1]-xPoint[i],2)+pow(yPoint[i+1]-yPoint[i],2));

 cout<<X<<"    ";
 cout<<endl;
 // }
 }
 }
你想这样吗?我可能不完全理解你的问题