Форум программистов, компьютерный форум CyberForum.ru

Найти наименьший периметр треугольника - C++

Восстановить пароль Регистрация
 
Dmitry0150
1 / 1 / 0
Регистрация: 25.03.2013
Сообщений: 50
02.04.2013, 12:38     Найти наименьший периметр треугольника #1
Дано множество A из N точек с координатами (x,y). Найти наименьший периметр треугольника, вершины которого принадлежат различным точкам множества A, и сами эти точки (точки выводятся в том же порядке, в котором они перечислены при задании множества A).

Помогите сделать, выдает: sqrt domain error

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include<iostream.h>
#include<stdlib.h>
#include<math.h>
#include<conio.h>
main()
{
const N=10;
int X[N],Y[N];
int i,j,k;
randomize();
//zapolnenie massivov sluchainym obrazom
for (i=0;i<N;i++)
  {
   X[i]=random(41)-20;
   Y[i]=random(41)-20;
  }
//Vyvod pervonachal'nyh dannyh
for (i=0;i<N;i++)
   cout<<i+1<<"Koordinaty tochki:"<<endl
       <<"("<<X[i]<<";"<<Y[i]<<")"<<endl;
double a,b,c;
for (i=0;i<N-2;i++)
  for (j=i+1;j<N-1;j++)
    for (k=j+1;k<N;k++)
 
a=sqrt((X[i]-X[j])*(X[i]-X[j])+(Y[i]-Y[j])*(Y[i]-Y[j]));
b=sqrt((X[j]-X[k])*(X[j]-X[k])+(Y[j]-Y[k])*(Y[j]-Y[k]));
c=sqrt((X[i]-X[k])*(X[i]-X[k])+(Y[i]-Y[k])*(Y[i]-Y[k]));
 
 
double min=0;
int i_min,j_min,k_min;
for (i=0;i<N-2;i++)
  for (j=i+1;j<N-1;j++)
    for (k=j+1;k<N;j++)
         a=sqrt((X[i_min]-X[j_min])*(X[i_min]-X[j_min])+(Y[i_min]-Y[j_min])*(Y[i_min]-Y[j_min]));
         b=sqrt((X[j_min]-X[k_min])*(X[j_min]-X[k_min])+(Y[j_min]-Y[k_min])*(Y[j_min]-Y[k_min]));
         c=sqrt((X[i_min]-X[k_min])*(X[i_min]-X[k_min])+(Y[i_min]-Y[k_min])*(Y[i_min]-Y[k_min]));
 
      if(a+b+c<min)
                 {min=a+b+c;
                  i_min=i;
                  j_min=j;
                  k_min=k;}
 
cout <<a+b+c<<endl;
getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2013, 12:38     Найти наименьший периметр треугольника
Посмотрите здесь:

C++ Найти периметр треугольника, если он задан вершинами
найти площадь и периметр треугольника C++
Найти периметр и площадь треугольника C++
C++ Найти площадь равностороннего треугольника, зная его периметр
Найти периметр треугольника через функцию C++
Работа с ссылками в функциях. Найти периметр треугольника C++
Найти площадь и периметр треугольника, если точки принадлежат определённой области C++
C++ Даны катеты треугольника. Найти периметр

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 19:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru