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

Общие Элементы Массива Структур - C++

Восстановить пароль Регистрация
 
Nemo_Ottuda
Сообщений: n/a
27.05.2013, 20:01     Общие Элементы Массива Структур #1
Здравствуйте.
Уже несколько часов не могу никак справиться с, вроде бы, элементарным,
нужна помощь.
итак, не вдаваясь в детали, у нас есть массив из n элементов, каждым элементов которого является некая структура interval аргументами в которой являются 2 переменные начала и конца интервала, каждая из которых принадлежит классу Date и имеет 3 аргумента, обозначающие день\месяц\год соответственно.
Задача - определить имеются ли у всех элементов вышеперечисленного массива общая часть,
или, другими словами, пересекаются ли эти n временных интервалов.
пробовал по-одиночке сравнивать соответствующие элементы как-то год с годом, месяц с месяцем,
но получилось громоздко и работает только если в массиве 2 интервала.
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
cout<<"Введите  число  интервалов для массива: ";
cin>>n;
Interval *mass;
mass= new Interval[n];
Interval MASS;
int tu=0;
for (int i=0;i<n;i++)
{
    cout<<"Введите начальную и конечную дату интервала: ";
cin >> Begin; 
cin >> End;
Date kon,nach;
mass[i]=Interval(Begin, End);
if (i>0) {
if (((nach.y<Begin.y)&&(kon.y>Begin.y))||((nach.y>Begin.y)&&(nach.y<End.y))) tu=1; else { 
    if ((nach.y==Begin.y)||(kon.y==Begin.y)||(nach.y==End.y)||(kon.y==End.y)) {
            if (((nach.m<Begin.m)&&(kon.m>Begin.m))||((nach.m>Begin.m)&&(nach.m<End.m))) tu=1; else { 
        if ((nach.m==Begin.m)||(kon.m==Begin.m)||(nach.m==End.m)||(kon.m==End.m)) {
                    if (((nach.d<Begin.d)&&(kon.d>Begin.d))||((nach.d>Begin.d)&&(nach.d<End.d))) tu=1; else { 
                        if ((nach.y==Begin.y)||(kon.y==Begin.y)||(nach.y==End.y)||(kon.y==End.y)) tu=1; else tu=0;
                    }
                } else tu=0;
            }
        } else tu=0;
    }
}
nach=Begin;
kon=End;
}
for (int i=0;i<n;i++){
mass[i].Print();
}
if (tu==1) {cout<<'\n'<<"Имеются общие элементы";}
    else {cout<<'\n'<<"Не имеется общих элементов";}
выручайте
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2013, 20:01     Общие Элементы Массива Структур
Посмотрите здесь:

C++ общие элементы из 2 целочисленных массивов
Общие элементы в массивах C++
C++ Как поменять местами элементы массива структур?
общие элементы массива C++
Общие элементы двух массивов записать в один C++
C++ Общие и частные элементы класса
Найти общие элементы C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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