我需要帮助完成作业。我生成了两个平行数组来保持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()
}
}
答案 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;
// }
}
}
你想这样吗?我可能不完全理解你的问题