求教C++编程高手:我初学编程,遇到阻碍,下面这道题没有解出.请求帮忙.

2024-12-21 15:17:22
推荐回答(4个)
回答1:

#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<<"其距离为:"< return 0;
}
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<<"("<x<<","<y<<")"<}

大概意思就是这样,需要用结构体来存储,动态内存分配。

回答2:

关键字 new 动态创建数组。

回答3:

不要为数组的大小去着魔了,其实数组就是固定大小的,所以,你定义个足够大的数组吧。
如果比较熟悉指针的话,你可以看看malloc函数,这个可以分配个指定的大小空间

回答4:

用一个结构体存储x和y,,然后建立一个结构数组