На плоскости задано N точек своими координатами.

Пример 1:

На плоскости задано N точек своими координатами. Найти среди них такую, сумма расстояний от которой до остальных минимальна.

Решение от преподавателя:

//#include "stdafx.h"
#include
#include
#include
#include

using namespace std;

class CL1

{
unsigned n;

float *x;
float *y;

public:

CL1(unsigned size)
{
n=size;
x=new float [n];
y=new float [n];
}

void MyInp()
{
for (int i=0;i{
cin>>(*(x+i));
cin>>(*(y+i));
}
}

void MyOut()
{
float *p,*q;
for(p=x,q=y;p<=x+n-1;p++,q++)
printf("\n% 7.2f%7.2f",*p,*q);
}

void FUN1()
{

double mas[n];// массив в которрый забиваются все расстояния, и из них выберем минимальное
double s;
for(int i=0;i{
s=0;
for(int j=0;j{
s=s+sqrt(((x[i]-x[j])*(x[i]-x[j]))+((y[i]-y[j])*(y[i]-y[j])));

}
mas[i]=s;
}
//нужно отсортировать массив с расстояниями(пузырьком)
double t;
for(int i=0;i{
if(mas[i]>mas[i+1])
{
t=mas[i];
mas[i]=mas[i+1];
mas[i+1]=t;
}

}
//for(int i=0;i//cout<<"mas="<

cout<<"min_sum_distance="<

}

~CL1()
{
cout<<"\nThe destructor deletes array\n" ;
getch();
delete []x;
delete []y;
}

};

//int _tmain(int argc, _TCHAR* argv[])
int main()
{
unsigned N2;
cin>>N2;
CL1 Obj(N2);
Obj.MyInp();
Obj.MyOut();
cout<Obj.FUN1();

return 0;
}

Не нашли нужного вам решения? Оставьте заявку и наши авторы быстро и качественно помогут вам с решением.
Оставить заявку
Работа вам нужна срочно. Не волнуйтесь, уложимся!

Заполните, пожалуйста, данные для автора:

  • 22423 авторов готовы помочь тебе.
  • 2402 онлайн