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

найти точку, принадлежащую - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ найти первые N целых чисел http://www.cyberforum.ru/cpp-beginners/thread426561.html
найти первые N целых чисел, у которых младший байт является зеркальным отражением следующего байта
C++ массивы сортировка простая сортировка обменами. напишите плиз.. http://www.cyberforum.ru/cpp-beginners/thread426560.html
Определить, можно ли в заданной матрице найти столбец, удовлетворяющий условию C++
Задача :Определить можно ли в двумерном массиве найти такой столбец, который разбивает массив на два так, что сумма элементов в первом больше, чем сумма элементов во втором. Сам столбец в разбиваемые части не входит. Подскажите примерно как сделать эту задачку и с чего начать
C++ Ошибки в Code Blocks
Есть такая проблемка #include <iostream> using namespace std; int main() { int 1; int 2; int 4;
C++ Помогите исправить программу запись в файл http://www.cyberforum.ru/cpp-beginners/thread426536.html
Нужно записат в файл массив чисел от 100 до 300 заполнить случайным образом. В файл записываются одни символы. помогите исправить программу #include <iostream> #include <time.h> #include <stdio.h> using namespace std; const int n=100; int d; char p; int k; size_t file;
C++ Добавление и удаление элемента динамического массива Подскажите какие существую способы добавления и удалеия элемента одномерного динамического массива(переопределяя размер массива). Желательно не используя vector. есть вот такое вот: #include<stdio.h> #include<string.h> #include<stdlib.h> void add(int*,int); void del(int*,int); void main() подробнее

Показать сообщение отдельно
Whiteha
Программист
33 / 33 / 4
Регистрация: 08.07.2011
Сообщений: 190
Записей в блоге: 1
12.01.2012, 13:27     найти точку, принадлежащую
Первое что мне пришло на ум - это просто пробежаться по каждой точке отрезка и проверить её на равенство a <= x <= b для каждого из подотрезков, считая параллельно для точки число таких пересечений.
Так можно найти не только точку с максимальным количеством пересечений, но и отрезок, но тк нужна только одна точка, то на мой взгляд выглядеть это будет как-то так:
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
#include <iostream>
using namespace std;
 
pair <int, int> segm;
int len, num;
 
int main ()
{
    setlocale(LC_ALL, "");
    cout << "Введите длину основного отрезка: " << endl; cin >> len;
    len++; // Ввели 6, получили отрезок от 0 до 6 включительно.
    segm.first = 0; 
    segm.second = len;
    cout << "Введите число отрезков которые включает в себя основной: " << endl; cin >> num;
    pair <int, int> *vs = new pair <int, int> [num];
    for (int i = 0, buf = 0; i < num; i++)
    {
        cout << "Начало " << i + 1 << " отрезка: "; cin >> buf;
        if (buf >= segm.first && buf <= segm.second) vs[i].first = buf;
        cout << "Конец " << i + 1 << " отрезка: "; cin >> buf;
        if (buf >= segm.first && buf <= segm.second) vs[i].second = buf;
    }
    
    int *count = new int [len]; // Для подсчёта числа пересечений в данной точке
    int inmax = 0, nmax = 0;
 
    for (int i = 0; i < len; i++)
    {
        count[i] = 0;
        for (int j = 0; j < num; j++)
        {
            if (i >= vs[j].first &&  i <= vs[j].second) count[i] ++;
        }
        if (nmax < count[i]) { nmax = count[i]; inmax = i;}
 
        cout  << " count = " << count[i] << endl;
    }
    cout << "Максимальное число пересечений в точке " << inmax << " равно " << nmax << endl;
 
    system("pause");
}
 
Текущее время: 21:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru