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

Точки в многоугольнике - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать функцию, которая возвращает количество нулевых бит в символах строки http://www.cyberforum.ru/cpp-beginners/thread260154.html
Есть срочная задача: написать функцию, которая возвращает количество нулевых бит в символах строки (не считая нулевой символ в конце строки). Нужно решить задачу несколькими способами. Я уже сделал это с помощью обычных побитовых операций << и &. Можно ли использовать тут класс BitSet? А если нет - то подскажите пожалуйста другие варианты.
C++ использование vector и struct недавно пересел на С++, пытаюсь сделать программу, которую я делал на паскале struct elem { long Li; long Ri; }; int main(int argc, char *argv) { http://www.cyberforum.ru/cpp-beginners/thread260152.html
Рекурсия C++
Разработать рекурсивную функцию не возврашающую значений: Дано натуральное четное число n. Разработать функцию для вывода на экран следующей картинки: ********* (0 пробелов, n звездочек) ******** (1 пробел, n-1 звездочка) ******* (2...
Использование функций шаблонов C++
Использование функций шаблонов: для работы с двумерными массивами арифметических типов данных разработать шаблоны ввода массива, а также шаблон для решения основной задачи: Подсчитать среднее арифметическое элементов, расположенных выше главной диагонали. Буду очень признателен! Заранее спасибо! Добавлено через 59 минут плохо понимаю задачу Добавлено через 39 минут Неужели никто не...
C++ Алгоритм Коммивояжера http://www.cyberforum.ru/cpp-beginners/thread260117.html
кто может помочь с прогой на С или С++?
C++ Содержит ли заданный массив группы элементов, расположенные в порядке возрастания их значений Определить содержит ли заданный массив группы элементов,расположенные в порядке возрастания их значений.(CИ). подробнее

Показать сообщение отдельно
Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
20.03.2011, 23:11  [ТС]     Точки в многоугольнике
Mayonez, пишет
Неправильный ответ Ошибка на тесте 7
я не много исправил так как вектор не хотел принимать. вот что получилось:
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
76
77
78
79
80
81
82
#include <stdio.h>
 
int abs(int a)
{
    return a>0?a:-a;
}
 
double dabs(double a)
{
    return a>0?a:-a;
}
 
struct point 
{
    int x;
    int y;
};
 
int nod (int a, int b)
{
    while (a && b)
    {
        if (a>b)
            a = a%b;
        else
            b = b%a;
    }
    return a+b;
}
 
double sq (point* v,int n)
{
    point one = v[n-1],
          two = v[0];
 
    double res = (one.x - two.x)*(one.y + two.y);
    for (int i = 1; i < n; i++)
    {
        one = v[i-1];
        two = v[i];
        res += (one.x - two.x)*(one.y + two.y);
    }
    return dabs(res)/2;
}
 
int kt (point* v,int n)
{
    point one = v[n-1],
          two = v[0];
    int dx = abs(one.x - two.x),
        dy = abs(one.y - two.y);
    int res = nod (dx, dy);
    for (int i = 1; i < n; i++)
    {
        one = v[i-1];
        two = v[i];
 
        dx = abs(one.x - two.x);
        dy = abs(one.y - two.y);
        res += nod (dx, dy);
    }
    return res;
}
 
int main()
{
 
    int n;
    scanf("%d",&n);
 
    point poligon[10000];
    for (int i = 0; i < n; i++)
    {
        scanf("%d %d",&poligon[i].x,&poligon[i].y);
    }
 
    int M = kt(poligon,n);
    double S = sq(poligon,n);
    int K = S - M/2 + 1;
    printf("%d\n",K);
    return 0;
}
я не много не понимаю схему вычесления плошади, а именно:
C++
1
res += (one.x - two.x)*(one.y + two.y);
почему с начало минус а потом плюс??
 
Текущее время: 06:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru