#include
#include
using namespace std;
struct Data
{
float x;
float y;
};
void input(Data *ps,int n);
float distance(Data *p1,Data *p2);
void show(Data *p);
int main()
{
int n;
cout<<"请输入所需要的点n:\n";
cin>>n;
Data *p=new Data[n]; //定义个结构指针,动态确定所需的点
input(p,n);
float max=distance(p,(p+1)); //初步确定最大值为1,2个点之间距离
int flagi=0; int flagj=1; //设置最大两个点的标号
for(int i=0;i
for(int j=i+1;j
double d=distance((p+i),(p+j));
if(max
max=d;
flagi=i; flagj=j;
}
}
}
cout<<"所有的点之中最大距离的两个点是:\n";
show((p+flagi));
show((p+flagj));
cout<<"其距离为:"<
}
void input(Data *ps,int n) //输入点
{
for(int i=0;i
cout<<"请输入第"< cin>>ps->x;
cin>>ps->y;
}
}
float distance(Data *p1,Data *p2) //求两点之间的距离
{
float distance;
distance=sqrt( ((p1->x)-(p2->x))*((p1->x)-(p2->x)) + ((p1->y)-(p2->y))*((p1->y)-(p2->y)) ); // 数学公式
return distance;
}
void show(Data *p)
{
cout<<"("<
大概意思就是这样,需要用结构体来存储,动态内存分配。
关键字 new 动态创建数组。
不要为数组的大小去着魔了,其实数组就是固定大小的,所以,你定义个足够大的数组吧。
如果比较熟悉指针的话,你可以看看malloc函数,这个可以分配个指定的大小空间
用一个结构体存储x和y,,然后建立一个结构数组