0

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

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

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

任何帮助表示赞赏,让我知道是否需要详细说明。

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

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()
    }
}
4

1 回答 1

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

你想要这样吗?我可能不完全理解你的问题

于 2012-12-02T23:40:18.660 回答