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

Проверка многоугольника на выпуклость - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перевод из 2-ой в 8-ую СС http://www.cyberforum.ru/cpp-beginners/thread730410.html
Необходимо реализовать перевод чисел из двоичной в восьмеричную систему счисления.
C++ Матрица (Найти вектор B(l), каждый элемент которого равен среднему арифметическому элементов...) Задана матрица A(k,l). Найти вектор B(l), каждый элемент которого равен среднему арифметическому элементов соответствующего столбца матрицы А. Похожие темы http://www.cyberforum.ru/csharp-beginners/thread591028.html http://www.cyberforum.ru/turbo-pascal/thread515227.html мой код #include <iostream> #include <time.h> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread730405.html
Составить процедуру, выполняющую сжатие массива удалением элементов, значение которых меньше заданного числа C++
Составить процедуру, выполняющую сжатие массива удалением элементов, значение которых меньше заданного числа. Вывести на экран максимальное значение среди удалённых элементов. Решите пожалуйста, кто сможет. Я в программировании не шарю, а лабу надо сделать
C++ Прочитать одной строкой с файла
собственно в этом и вопрос, как считать целой строкой #include <iostream> #include <iomanip> #include <sstream> #include <string> #include <fstream> using namespace std; void process_all_transactions
C++ Строки (Расположить слова строки в порядке, обратном исходному) http://www.cyberforum.ru/cpp-beginners/thread730377.html
Здравствуйте,помогите пожалуйста. Задание: Расположить слова строки в порядке, обратном исходному.
C++ Перевод в двоичную систему(Указать на ошибку) Не хочет верно выдавать числа типа от 16 до 20, где в двоичной на 2м месте стоит ноль(16=10000) выдает только 0000, и так со всеми числами в которых на 2м месте ноль, первая единица не отображается) укажите на фейл) #include <iostream> using namespace std; int main() { setlocale(LC_ALL, "Russian"); int n=0, x=0, y=0, k=0; подробнее

Показать сообщение отдельно
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
13.12.2012, 19:33     Проверка многоугольника на выпуклость
Здравствуйте.

Не заходит вырезано задача.

Не могу понять, почему.
Проверял на схожесть знаков ориентированные площади треугольников из точек.
Код:
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
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
 
struct point{
    long int x,y;
};
 
bool isok(point a,point b,point c){
    return (b.x - a.x)*(c.y - a.y) - (b.y - a.y)*(c.x - a.x) > 0;
}
 
int main(){
    long int N;
    cin >> N;
    vector<point> Polygon(N+2);
    for(int i = 1; i <= N; ++i)
        cin >> Polygon[i].x >> Polygon[i].y;
    Polygon[0] = Polygon[N];
    Polygon[N+1] = Polygon[0];
    bool ans = true;
    for(int i = 2; i <= N; ++i){
                if(isok(Polygon[i],Polygon[i-1],Polygon[i+1]) != isok(Polygon[i-1],Polygon[i-2],Polygon[i])){
                    ans = false;
                    break;
}
    }
    if(ans)
        cout <<"YES" << endl;
    else
        cout <<"NO" << endl;
}
Добавлено через 1 час 57 минут
up, до сих пор не нашел ошибки

Добавлено через 21 минуту
Формат входных данных


В первой строке вводится одно число N (3≤N≤100000). Далее в N строках задается по паре чисел – координаты очередной вершины простого многоугольника в порядке обхода по или против часовой стрелки.

Формат выходных данных

Выведите одну строку: “YES”, если приведённый многоугольник является выпуклым, и “NO” в противном случае.

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