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

Множества без STL - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти в файле максимальную длину строки и вывести в новый файл все строки, имеющую такую длину http://www.cyberforum.ru/cpp-beginners/thread653083.html
Товарищи, простите что обращаюсь. Кому не сложно, помогите (решите) хоть сколько нибудь из этих 3 заданий. Сам я чайник, много проболел и упустил материал, а в срок не выучу его, чтобы сдать зачет....
C++ Описатель inline Описатель inline должен располагаться только в прототипе или определении функции или и там, и там? http://www.cyberforum.ru/cpp-beginners/thread653069.html
Подскажите условие C++
Не знаю какое должно быть условие, для проверки файла на пустоту if(comand=="4") { cout<<"ЧТЕНИЕ ИЗ ФАЙЛА"<<endl; ifstream f; f.open("avto.txt"); if(!f) {...
C++ Таблицы aij где Aij = sin (i + j)
Дано натуральное число n. Определить количество положительных и отрицательных элементов таблицы aij, где i, j = 1,2, ..., n, если: Aij = sin (i + j).
C++ fputs и две переменные http://www.cyberforum.ru/cpp-beginners/thread653055.html
Всем здравствуйте. Не ругайте сильно ибо туплю по страшному. Видимо из-за полусонного состояния. Подскажите как правильно записать две переменные с помощью fputs. Пробовал fputs(i+"\t"+ArKeywords,...
C++ OpenAl инициализация Помогите разобраться как Элементарно поключить OpenAl изспользую только: al.h alc.h напишите код так плиз: viod ГореИнициализация(){}; int main() { ГореИнициализация(); } Просто везде... подробнее

Показать сообщение отдельно
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.09.2012, 12:48
Вот эта функция уже будет добавлять в объединение множеств элемент, толко при условии, что такого в нём нет:
Код
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
Set* united(Set *sets, Set *sets1)
    {
        Set *unionset = new Set;
        
        int i = 0;
        for (i = 0; i < sets -> n; i++) // если в объединении, что-то уже есть, то копируем в новое объединение
        {
            unionset -> element[i] = sets -> element[i];
            ++(unionset -> n);
        }
        for (int j = 0; j < sets1 -> n; j++, i++)
        {
                if (sets -> n == 0) // если объединение пустое, то просто добавляем в новое объединение новое множество
                {
                    unionset -> element[i] = sets1 -> element[j];
                    ++(unionset -> n);
                }
                else // если объединение не пустое
                {
                    int flag = 0; // флаг дубликата в объединении 
                    for (int p = 0; p < (unionset -> n); p++) // перебор объединения и сравнение с новым элементом
                        if (unionset -> element[p] == sets1 -> element[j]) // если найден дубликат
                        {
                            flag = 1; 
                            i--;
                            break;
                        }
                    if (flag == 0) // если дубликат не найден, то добавляем новый элемент в объединение
                    {
                        unionset -> element[i] = sets1 -> element[j];
                        ++(unionset -> n);
                    }
                }
        }
        return unionset; // возвращаем новое объединение
    }

Добавлено через 40 минут
Если в каждом из множеств не должно быть дубликатов, то функцию заполнения множества нужно так написать:
Код
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
void getElement()
    {
        char ch;
        do
        { 
        cout << "Введите элементы множества (Enter - выход): ";
        cin.sync();
        cin.get(ch);
        if (ch == '\n') 
        {
            cin.sync(); 
            break;
        }
        int flag = 0; // флаг дубликата
        for (int i = 0; i < n; i++) // перебор множества
        {
            if (element[i] == ch) // если найден дубликат
            {
                flag = 1;
                break;
            }
        }
        if (flag == 0) // если дубликат не найден, то добавляем элемент в множество
        {
            element[n] = ch;
            n++;
        }
        while (cin.get() != '\n');
        } while (true);
 
    }
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru