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

Поиск одинаковых элементов в массивах! - C++

Восстановить пароль Регистрация
 
Maxim09
 Аватар для Maxim09
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 209
15.10.2016, 15:42     Поиск одинаковых элементов в массивах! #1
Даны 2 массива(x,y) cоставить новый массив (z), из тех элементов массива (x) которые не входят в массиве (у).

Я вот что написал но неправильно получилось исправьте мою прогу плиз.

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
#include <iostream>
using namespace std;
void main()
{
    int i,j,k=0;
    const int n=6;
    int x[n]={1,3,5,7,9,11};
    int y[n]={2,4,6,8,10,5};
    int z[n];
    
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
        {
            if(x[i] != y[j])
                z[k++] = x[i];
        }
    }
    
    for(int i=0; i<n; i++)
    {
    cout << "x=" << x[i] <<" ";
    }
    cout<<endl;
 
    for(int j=0; j<n; j++)
    {
    cout << "y=" << y[j] <<" ";
    }
    cout<<endl;
 
    for(int k=0; k<n; k++)
    {
    cout << "z=" << z[k] <<" ";
    }
    cout<<endl;
 
    system("pause");
}
Основная проблема в ЭТОМ:
C++
1
2
3
4
5
6
7
8
for(int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
        {
            if(x[i] != y[j])
                z[k++] = x[i];
        }
    }
Не пойму в чём дело? Что не так
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GbaLog-
Не Эксперт C++
1432 / 618 / 174
Регистрация: 24.08.2014
Сообщений: 2,503
Записей в блоге: 1
Завершенные тесты: 2
15.10.2016, 15:48     Поиск одинаковых элементов в массивах! #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for(int i=0; i<n; i++)
{
    bool flag = false;
    for(int j=0; j<n; j++)
    {
        if(x[i] == y[j])
        {
            flag = true;
        }
    }
    if( !flag )
    {
        z[k++] = x[i];
    }
}
Maxim09
 Аватар для Maxim09
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 209
15.10.2016, 16:09  [ТС]     Поиск одинаковых элементов в массивах! #3
А как динамически выделить память для массива (z) чтоб не выделяло память в пустую.
так как-то?
C++
1
int *z=new int[k]
GbaLog-
Не Эксперт C++
1432 / 618 / 174
Регистрация: 24.08.2014
Сообщений: 2,503
Записей в блоге: 1
Завершенные тесты: 2
15.10.2016, 16:09     Поиск одинаковых элементов в массивах! #4
Цитата Сообщение от Maxim09 Посмотреть сообщение
так как-то?
Да.
Maxim09
 Аватар для Maxim09
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 209
15.10.2016, 16:13  [ТС]     Поиск одинаковых элементов в массивах! #5
А куда его добавлять надо?
GbaLog-
Не Эксперт C++
1432 / 618 / 174
Регистрация: 24.08.2014
Сообщений: 2,503
Записей в блоге: 1
Завершенные тесты: 2
15.10.2016, 16:22     Поиск одинаковых элементов в массивах! #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Maxim09 Посмотреть сообщение
А куда его добавлять надо?
Лучше оставьте всё как есть, иначе придётся как-то так переписывать:
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
#include <iostream>
using namespace std;
int main()
{
    int i,j,k=0;
    const int n=6;
    int x[n]={1,3,5,7,9,11};
    int y[n]={2,4,6,8,10,5};
    
    for(int i=0; i<n; i++)
    {
        bool flag = false;
        for(int j=0; j<n; j++)
        {
            if(x[i] == y[j])
            {
                flag = true;
            }
        }
        if( !flag )
        {
            ++k;
        }
    }
    
    int* z = new int[k]{};
    
    for(int i=0, d=0; i<n; i++)
    {
        bool flag = false;
        for(int j=0; j<n; j++)
        {
            if(x[i] == y[j])
            {
                flag = true;
            }
        }
        if( !flag )
        {
            z[d++] = x[i];
        }
    }
    
    for(int i=0; i<n; i++)
    {
    cout << "x=" << x[i] <<" ";
    }
    cout<<endl;
 
    for(int j=0; j<n; j++)
    {
    cout << "y=" << y[j] <<" ";
    }
    cout<<endl;
 
    for(int i=0; i<k; i++)
    {
    cout << "z=" << z[i] <<" ";
    }
    cout<<endl;
 
    system("pause");
}
Peoples
715 / 375 / 339
Регистрация: 06.02.2016
Сообщений: 989
Записей в блоге: 10
Завершенные тесты: 3
15.10.2016, 16:37     Поиск одинаковых элементов в массивах! #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
#include <algorithm>
#include <ctime>
#include <cstdlib>
using namespace std;
int main() {
    int k=0;
    srand(time(NULL));
    const int n=10;
    int *x=new int[n];
    int *y=new int[n];
    for(int i=0; i!=n; i++) {
        x[i]=rand()%20;
        y[i]=rand()%20;
    }
    cout<<"x"<<endl;
    for(int i=0; i!=n; i++) {
        cout<<x[i]<<" ";
    }
    cout<<endl;
    cout<<"y"<<endl;
    for(int i=0; i!=n; i++) {
        cout<<y[i]<<" ";
    }
    for(int i=0; i<n; i++) {
        bool flag = false;
        for(int j=0; j<n; j++) {
            if(x[i] == y[j]) {
                flag = true;
            }
        }
        if( !flag ) {
            ++k;
        }
    }
    int *z=new int[k];
    sort(x,x+n);
    sort(y,y+n);
    set_difference(x,x+n,y,y+n,z);
    cout<<endl;
    cout<<"z"<<endl;
    for(int i=0; i!=k; i++) {
        cout<<z[i]<<" ";
    }
    delete []x;
    delete []y;
    delete []z;
    return 0;
}
Maxim09
 Аватар для Maxim09
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 209
15.10.2016, 16:38  [ТС]     Поиск одинаковых элементов в массивах! #8
Скажите а для чего нужна(что делает) вот эта часть кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for(int i=0; i<n; i++)
    {
        bool flag = false;
        for(int j=0; j<n; j++)
        {
            if(x[i] == y[j])
            {
                flag = true;
            }
        }
        if( !flag )
        {
            ++k;
        }
    }
Peoples
715 / 375 / 339
Регистрация: 06.02.2016
Сообщений: 989
Записей в блоге: 10
Завершенные тесты: 3
15.10.2016, 16:39     Поиск одинаковых элементов в массивах! #9
вот
Миниатюры
Поиск одинаковых элементов в массивах!  
Maxim09
 Аватар для Maxim09
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 209
15.10.2016, 16:49  [ТС]     Поиск одинаковых элементов в массивах! #10
Поправьте меня если я не прав но это:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for(int i=0; i<n; i++)
    {
        bool flag = false;
        for(int j=0; j<n; j++)
        {
            if(x[i] == y[j])
            {
                flag = true;
            }
        }
        if( !flag )
        {
            ++k;
        }
    }
Высчитывает сколько памяти выделять надо так? Верно?.
GbaLog-
Не Эксперт C++
1432 / 618 / 174
Регистрация: 24.08.2014
Сообщений: 2,503
Записей в блоге: 1
Завершенные тесты: 2
15.10.2016, 16:50     Поиск одинаковых элементов в массивах! #11
Цитата Сообщение от Maxim09 Посмотреть сообщение
Высчитывает сколько памяти выделять надо так? Верно?.
Верно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2016, 16:51     Поиск одинаковых элементов в массивах!
Еще ссылки по теме:

C++ Поиск одинаковых чисел в трех массивах
Посчитать количество одинаковых элементов в двух массивах C++
Поиск одинаковых элементов в векторе C++

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

Или воспользуйтесь поиском по форуму:
Maxim09
 Аватар для Maxim09
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 209
15.10.2016, 16:51  [ТС]     Поиск одинаковых элементов в массивах! #12
спс всем за помощь!
Yandex
Объявления
15.10.2016, 16:51     Поиск одинаковых элементов в массивах!
Ответ Создать тему
Опции темы

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