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

Минимальное количество прямых через заданное множество точек - C++

Восстановить пароль Регистрация
 
Zurashka
0 / 0 / 0
Регистрация: 06.05.2012
Сообщений: 7
06.05.2012, 22:20     Минимальное количество прямых через заданное множество точек #1
Не могу найти ошибку в коде, помогите пожалуйста.
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
#include <cstdlib>
#include <stdio.h>
#include <iostream.h>
#include <vcl.h>
#pragma hdrstop
void main()
{int i,j,count,a,b,c,x,k,n,s,y,poz,h;
int p[100][2];
int l[100][100];
scanf("%i",&n);
s=0;
for (i=0; i<n; i++)
{
    scanf("%i %i",&x,&y);
    p[i][0]=x;
    p[i][1]=y;
}
k=n*(n - 1)*2;
count=0;
for (i=0; i<n-1; i++)
{
    for (j=i+1; j<n; j++)
    {
        a=p[i][1]-p[j][1];
        b=p[j][0]-p[i][0];
        c=-a*p[i][0]-b*p[i][1];
        poz=1;
        l[count][0]=0;
        for (h=0; h<n; h++)
            if (a*p[h][0]+b*p[h][1]+c==0)
            {
                l[count][poz]=h;
                l[count][0]++;
                poz++;
            }
            count++;
 
    }
}
count=n;
for (j=n;j>0; j--)
for (i=0;i<k;i++)
if ((l[i][0]==j)&&(count>0))
{   s++;
    count=count-l[i][0];
    for (a=1;a<=l[i][0];a++)
    for (b=0;b<=k-1; k++)
    for (c=1;c<=l[b][0];c++)
    if ((l[b][c]==l[i][a])&&(b!=i)&&(l[b][c]>=0))
    {
        l[b][c]=l[b][l[b][0]];
        l[b][0]--;
    }
    for (a=1; a<=l[i][0];a++)
    l[i][a]=-1;
    l[i][0]=0;
 
}
    printf("%i",s);
    scanf("%i",&x);
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2012, 22:20     Минимальное количество прямых через заданное множество точек
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cyberdiem
 Аватар для cyberdiem
74 / 25 / 1
Регистрация: 15.02.2012
Сообщений: 97
06.05.2012, 22:54     Минимальное количество прямых через заданное множество точек #2
ошибка какого рода? не компилируется/не запускается/неверный результат в расчетах?
Zurashka
0 / 0 / 0
Регистрация: 06.05.2012
Сообщений: 7
06.05.2012, 23:12  [ТС]     Минимальное количество прямых через заданное множество точек #3
всё компилируется, запускается, ошибка в расчётах вроде там, где идёт проверка на принадлежность точки прямой и присваивание этой точки этой прямой
Yandex
Объявления
06.05.2012, 23:12     Минимальное количество прямых через заданное множество точек
Ответ Создать тему
Опции темы

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