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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти в файле максимальную длину строки и вывести в новый файл все строки, имеющую такую длину http://www.cyberforum.ru/cpp-beginners/thread653083.html
Товарищи, простите что обращаюсь. Кому не сложно, помогите (решите) хоть сколько нибудь из этих 3 заданий. Сам я чайник, много проболел и упустил материал, а в срок не выучу его, чтобы сдать зачет. Очень хочу в универе остаться, нагнать упущенное, так что кому не сложно, помогите, напишите код. 1)Дан файл, содержащий несколько строк. Найти максимальную длину строки и вывести в новый файл все...
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) { cout<<"Невозможно открыть файл."; }
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, file); но не пашет.
C++ OpenAl инициализация Помогите разобраться как Элементарно поключить OpenAl изспользую только: al.h alc.h напишите код так плиз: viod ГореИнициализация(){}; int main() { ГореИнициализация(); } Просто везде находит в инклудами #include <al.h> подробнее

Показать сообщение отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.09.2012, 05:39     Множества без STL
Если по быстрому. У вас много разных ошибок. Вот код, наверное, весьма не идеальный. Делает просто слияние множеств, не исключая одинаковые элементы:
Код
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <iostream>
using namespace std;
 
int k=0;
void addSet();
/*-------------класс Множество-----------*/
class Set
{
private:
    char element[100];
    int n;
public:
    Set()
    {
        element[0]='\0';
        n = 0;
    }
    
    Set(char s[])
    {
        strcpy(element,s);
    }
    
    void getElement()
    {
        
        char ch;
        
        do
        { 
        cout << "Введите элементы множества (Enter - выход): ";
        cin.sync();
        cin.get(ch);
        if (ch == '\n') 
        {
            cin.sync(); 
            break;
        }
        element[n] = ch;
        n++;
        while (cin.get() != '\n');
        } while (true);
 
    }
    
    void showElements()
    {
        static int set_number=1;
        cout<<"Множество "<<set_number<<": \n";
        for (int i = 0; i < n; i++)
            cout << element[i] << endl;
        cout<<endl;
        set_number++;
    }   
    
    Set* united(Set *sets, Set *sets1)
    {
        Set *unionset = new Set;
        (unionset -> n) = (sets -> n) + (sets1 -> n);
        int i;
        for (i = 0; i < sets -> n; i++)
            unionset -> element[i] = sets -> element[i];
        for (int j = 0; j < sets1 -> n; j++, i++)
             unionset -> element[i] = sets1 -> element[j];
        return unionset;
    }
};
 
int main()
{
    setlocale(0,"");
    addSet();
 
    system("pause");
    return 0;
}
 
/*------------Создание множеств и вывод на экран-----------*/
void addSet()
{
    Set *sets[9];
    char choice;
    
    do 
    {
        sets[k]=new Set;
        sets[k]->getElement();
        k++;
        cout<<"Желаете ли вы добавить ещё одно множество?(Y\\N)"; 
        cin >> choice;
    } while (choice =='y' || choice == 'Y');
 
    for(int i=0;i<k;i++)
    {
        sets[i]->showElements();
    }
    cout<<endl;
    cout<<"Объединение: ";   /*создал новый обьект и запомнил его номер, далее в него sets[p] нужно произвести обьединение всех существующих множеств */
    sets[k]=new Set; 
    int p=k;
    k++;
    for(int m = 0; m < k-1; m++)
        sets[p] = sets[p]->united(sets[p], sets[m]);
        
    sets[p]->showElements();
    cout<<endl;
}
 
Текущее время: 13:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru