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

Работа С Массивами (Выбрать три различные точки из заданного множества точек на плоскости так...) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как string создает строку?(calloc, malloc) http://www.cyberforum.ru/cpp-beginners/thread620238.html
стринг создает строку с помощью calloc, malloc?
C++ string, c_str функция string.c_str() возвращает const char*, что бы не изменяли строку напрямую. Но! Если явно преобразовать указатель к char*, то строка вполне изменяется. int main() { string str = "qwerty"; char *p = (char*)str.c_str(); *(p+1) = 'k'; cout << str; getch(); http://www.cyberforum.ru/cpp-beginners/thread620228.html
Проверка числа на простоту C++
Почему, если необ. проверить, является ли число простым(напр. ч-ло n),можно просматривать делители не от 2 до n, а от 2 до sqrt(n)? P.S. интересует именно этот алгоритм, а точнее, почему после корня из числа не может больше быть делителей. Спасибо.
C++ Каталоги VC++ расскажите нубу
Здравствуйте специалисты :) такой вопрос установил "Visual C++ 2010 Express" В 2008 понятно как добавлять новые каталоги, а вот зашёл в 2010 Выбираю->Сервис->Параметры...-> проекты и решения->Каталоги VC++ а там нету :(... жду ответа :cry:
C++ Подскажите функции или класс http://www.cyberforum.ru/cpp-beginners/thread620196.html
Мне необходимо считывать информацию о состоянии директории - какие файлы, имена, дата изменения. есть какие-нибудь функции или классы для реализации такой задачи?
C++ Двоичные деревья. Итеративный ввод Уважаемые программисты! Помогите пожалуйста решить задачу: Написать НЕРЕКУРСИВНУЮ программу, печатающую все вершины двоичного дерева. При реализации использовать СТЕК ОТЛОЖЕННЫХ ЗАДАНИЙ. Список вершин задается в формате: m , g ], s , y ] ]. Нопонимаю каким образом ввести дерево. подробнее

Показать сообщение отдельно
nike64n
0 / 0 / 0
Регистрация: 13.01.2012
Сообщений: 11
06.07.2012, 18:26     Работа С Массивами (Выбрать три различные точки из заданного множества точек на плоскости так...)
Задание:
Выбрать три различные точки из заданного множества точек на плоскости так, чтобы была минимальной разность между количествами точек, лежащих внутри и вне треугольника с вершинами в выбранных точках.

Почему не работает? Помогите исправить ошибки, заранее благодарю.

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <iostream>
 
int main(int argc, char* argv[])
{
//----------------------------------------------------------
 float A[100][2];
 int n;
 cout << "n="; cin>>n;
 for(int i=0; i<n; i++)
  {for(int j=0; j<2; j++)
   for(int k=0; k<4; k++)
    {cout<<"["<<i<<"]"<<"["<<j<<"]"<<"["<<k<<"]="; cin>>A[i] [j] [k];}
  }
//----------------------------------------------------------
 
  float S=0, So=0, s1, s2, s3, p, p1, p2, p3,  a, b, c, d, l, f;
  int r=(n-3);
  int v=0, w=0, x1, x2, x3, y1, y2, y3;
 
//----------------------------------------------------------
 
  for (int i=0; i<n-2; i++)
   for (int j=i+1; j<n-1; j++)
    for (int k=j+1; k<n; k++)
   {    v=0;
        w=0;
        {
           a=sqrt(pow((A[i][0]-A[j][0]),2)+pow((A[i][1]-A[j][1]),2));
           b=sqrt(pow((A[j][0]-A[k][0]),2)+pow((A[j][1]-A[k][1]),2));
           c=sqrt(pow((A[k][0]-A[i][0]),2)+pow((A[k][1]-A[i][1]),2));
 
           p=((a+b+c)/2);
           S=sqrt(p*(p-a)*(p-b)*(p-c));
 
 
           for (int z=0; z<n; z++)
            {
             if((z!=i)&&(z!=j)&&(z!=k))
             {
 
               d=sqrt(pow((A[i][0]-A[z][0]),2)+pow((A[i][1]-A[z][1]),2));
               l=sqrt(pow((A[j][0]-A[z][0]),2)+pow((A[j][1]-A[z][1]),2));
               f=sqrt(pow((A[k][0]-A[z][0]),2)+pow((A[k][1]-A[z][1]),2));
 
               p1=((a+l+d)/2);
               s1=sqrt(p1*(p1-a)*(p1-l)*(p1-d));
 
               p2=((b+l+f)/2);
               s2=sqrt(p2*(p2-b)*(p2-l)*(p2-f));
 
               p3=((c+d+f)/2);
               s3=sqrt(p3*(p3-c)*(p3-d)*(p3-f));
 
               So=s1+s2+s3;
 
               if(S==So) v++;
               else w++;
 
               }
             }
 
            int h=abs(v-w);
             if(h<r)
              { r=h;
                x1=A[i][0]; y1=A[i][1];
                x2=A[j][0]; y2=A[j][1];
                x3=A[k][0]; y3=A[k][1];
           }
        }
     }
 
   cout<<"A=("<<x1<<" ; "<<y1<<")\n";
   cout<<"B=("<<x2<<" ; "<<y2<<")\n";
   cout<<"C=("<<x3<<" ; "<<y3<<")\n";
   }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru