Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 12.01.2010
Сообщений: 21
1

пересечение множеств

10.07.2011, 15:16. Просмотров 4006. Ответов 4
Метки нет (Все метки)

найти пересечение мнжества А и В. Результат вывести в другом множестве.
заранее спс.

извиняюсь если такое задание уже было
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.07.2011, 15:16
Ответы с готовыми решениями:

Пересечение множеств
Вход — два множества натуральных чисел. Выход — их пересечение (перечисление элементов через...

Пересечение множеств
Здравствуйте. У меня следующая задача: Даны 2 множества A и B, причем множество B отсортировано...

Пересечение множеств
Нужно сделать пересечение. Я сделал но выбивает ошибку. Прошу помощи разобраться с этим. Вот код...

Пересечение множеств
Есть такое задание: Создать класс- множество. Функции-члены реализуют добавление и удаление ...

4
827 / 349 / 64
Регистрация: 30.01.2009
Сообщений: 1,204
10.07.2011, 15:39 2
anton_00777, используй поиск, хотя бы гугл.
Пересечение, ообъединение, наименьший элемент пересечения множеств
0
0 / 0 / 0
Регистрация: 12.01.2010
Сообщений: 21
10.07.2011, 15:58  [ТС] 3
Искал , хочется без библиотек СТЛ , чистие циклы , сделал набросок
но самой проверкой не прально , не доработал еще , немогу сделать нормальный цикл
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    const int n=5 ;
    int d[10],c[10],a[n],b[n],i,j;
    bool k;
    for (i=0;i<n;i++)
        {
            cout<<"Bbegitb a["<<i<<"] :";
            cin>>a[i];
        }
    for (j=0;j<n;j++)
        {
            cout<<"Bbegitb b["<<j<<"] :";
            cin>>b[j];
        }
    for (i=0;i<n;i++)
        {
                    if(a[i]!=b[i])
                        {
                            c[i]=a[i];
                        }
                    else
                        {
                            c[i]=a[i];
                            d[i]=b[i];
                        }
        }
        
    for (i = 0 ; i < 5 ; i++)
        cout<< c[i]<<" ";
    for (i = 0 ; i < 5 ; i++)
        cout<< d[i]<<" ";
    return 0;
}
Добавлено через 1 минуту
делал 2ной цикл в проверке но не помогает....
0
827 / 349 / 64
Регистрация: 30.01.2009
Сообщений: 1,204
11.07.2011, 12:19 4
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
#include <iostream>
using namespace std;
 
int main(int argc, char* argv[])
{
        const int n=5 ;
    int a[] = { 1, 2, 3, 4, 5 };
    int b[] = { 8, 1, 5, 7, 3 };
        int c[n*2];
    int k = 0;
        for (int i=0; i < n; i++)  
    {
        for (int j=0; j <n; j++)
        {
        if (a[i] == b[j])
            c[k++] = a[i];
        }
    }
        
    for (int i = 0 ; i < n ; i++)
                cout<< a[i]<<" ";
        cout << endl;        
        for (int i = 0 ; i < n ; i++)
                cout<< b[i]<<" ";
        cout << endl;
        for (int i = 0 ; i < k ; i++)
                cout<< c[i]<<" ";
    cout << endl;
 
    cin.get();
        return 0;
}
0
538 / 443 / 162
Регистрация: 10.12.2009
Сообщений: 1,857
11.07.2011, 13:16 5
Вот как вариант:
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
#include <iostream>
#include <algorithm>
#include <vector>
 
int main ( int argc, char * argv[] )
{
    int FirstSet[]  = { 1, 5, 6, -2, 3, 0 };
    int SecondSet[] = { 0, -2, 6, 12, 7, 10 };
 
    std::vector < int > Crossing ( ( sizeof ( FirstSet ) + sizeof ( SecondSet ) ) / 4 );
 
    std::sort ( FirstSet, FirstSet + ( sizeof ( FirstSet ) / 4 ) );
    std::sort ( SecondSet, SecondSet + ( sizeof ( SecondSet ) / 4 ) );
 
    std::vector < int >::iterator iter = std::set_intersection ( FirstSet, FirstSet + ( sizeof ( FirstSet ) / 4 ), 
                                                               SecondSet, SecondSet + ( sizeof ( SecondSet ) / 4 ), 
                                                               Crossing.begin() );
    
    for ( std::vector < int >::size_type it = 0; it < ( int ) ( iter - Crossing.begin() ); it++ )
        std::cout << " " << Crossing [ it ];
 
    std::cin.get();
    return 0;
}
Добавлено через 19 минут
Можно заменить вывод на:
C++
1
2
3
4
Crossing.resize ( static_cast < int > ( iter - Crossing.begin() ) );
    
for ( std::vector < int >::size_type it = 0; it < Crossing.size(); it++ )
    std::cout << " " << Crossing [ it ];
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.07.2011, 13:16

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Объединение, пересечение, разность множеств
#include &quot;stdafx.h&quot; #include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include...

Найти пересечение и объединения заданных множеств
Здравствуйте. У меня следующая задача: Даны множества U={1,2,3,4,…,25} та три ее подмножества...

Пересечение, ообъединение, наименьший элемент пересечения множеств
&quot;Даны два множества A и B байтовых чисел. Найдите пересечение и объединение этих множеств и...

Найти пересечение множеств ключей двух map
Добрый день! Имеется 2 map'а: map&lt;string, double&gt; map1; map&lt;string, double&gt; map2; Требуется...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.