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

Сравнение двух массивов - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Catzo
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 7
05.12.2013, 11:47     Сравнение двух массивов #1
Добрый день ! В условии задачи сказано, что есть два массива по 10 элементов, значения которых случайно генерируются от 0 до 30. Нужно вывести все числа, которые повторяются в обоих массивах.
C++
1
2
3
4
5
6
7
8
9
10
 
    int arra[10];
    int arrb[10];
    for(int i=0; i!=10;i++)
    {
        arra[i]=rand()%30;
        arrb[i]=rand()%30;
        cout<<arra[i]<<"    "<<arrb[i]<<endl;
                        
    }
А вот как реализовать их сравнение...
Я уже думал сделать внутренний for, и таким образом сравнить первый и второй. Но у меня не получается.
И вторая проблема. Как реализовать сам вывод этих значений, так эти значения живут только в цикле. Тоже есть идея записывать все повторяющиеся значения в еще один массив, который будет иметь динамический размер.
И после сравнения, еще одним for просто вывести значения третьего массива.
Ребят, натолкните на решение, или подскажите что почитать нужно. Тему учить только начали, еще не все понимаю
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Delacroic
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 61
05.12.2013, 12:04     Сравнение двух массивов #2
C++
1
2
3
for(int i=0;i<10;i++)
{for(int j=0;j<10;j++)
{if {arra[i]==arrb[j])cout<<arra[i]<<endl;}}
так пробовал?
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
05.12.2013, 12:07     Сравнение двух массивов #3
Цитата Сообщение от Catzo Посмотреть сообщение
Я уже думал сделать внутренний for, и таким образом сравнить первый и второй.
Все правильно.
C++
1
2
3
4
5
6
for( int count=0; count<10; count++ )
  if( arra[count]!=arrb[count] )
    {
    cout << "No";
    break;
    }
Цитата Сообщение от Catzo Посмотреть сообщение
Как реализовать сам вывод этих значений, так эти значения живут только в цикле.
Так массивы же живут вне цикла.
Цитата Сообщение от Catzo Посмотреть сообщение
Тоже есть идея записывать все повторяющиеся значения в еще один массив, который будет иметь динамический размер.
Да можно в статический, только объявить его вместе с этими двумя. (хотя и непонятно зачем)
Catzo
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 7
05.12.2013, 12:18  [ТС]     Сравнение двух массивов #4
Я так само пробовал, только писал это здесь
C++
1
2
3
4
5
6
7
   for(int i=0; i!=10;i++)
    {
        arra[i]=rand()%30;
        arrb[i]=rand()%30;
        cout<<arra[i]<<"    "<<arrb[i]<<endl;
                        
    }
Сейчас написал вот так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int arra[10];
    int arrb[10];
    for(int i=0; i!=10;i++)
    {
        arra[i]=rand()%30;
        arrb[i]=rand()%30;
        cout<<arra[i]<<"    "<<arrb[i]<<endl;
    }
    cout<<"Повторяются значения ";
    for(int i=0;i<10;i++)
    {
        for(int j=0;j<10;j++)
        {
            if (arra[i]==arrb[j])
                cout<<arra[i]<<" ";
        }
    }
И все работает, осталось придумать как запретить вывод одинаковых значений
Сравнение двух массивов
Большое спасибо)
Catzo
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 7
05.12.2013, 12:19  [ТС]     Сравнение двух массивов #5
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Все правильно.
C++
1
2
3
4
5
6
for( int count=0; count<10; count++ )
  if( arra[count]!=arrb[count] )
    {
    cout << "No";
    break;
    }
Так массивы же живут вне цикла.
Да можно в статический, только объявить его вместе с этими двумя. (хотя и непонятно зачем)
Это так, ляпнул по глупости. Проверил, все живет.
Delacroic
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 61
05.12.2013, 12:24     Сравнение двух массивов #6
Что бы не повторялись, нужно ещё один массив пилить, там сортировать и удалять повторяющиеся.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
05.12.2013, 12:25     Сравнение двух массивов #7
Цитата Сообщение от Delacroic Посмотреть сообщение
там сортировать и удалять повторяющиеся.
Да просто добавлять туда уже не повторяющиеся. Зачем двойную работу делать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2013, 12:29     Сравнение двух массивов
Еще ссылки по теме:

Сравнение двух двумерных массивов C++
C++ Создать два массива, которые будут содержать: все четные элементы двух массивов; все нечетные элементы двух массивов
C++ Сравнение элементов двух массивов

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

Или воспользуйтесь поиском по форуму:
Delacroic
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 61
05.12.2013, 12:29     Сравнение двух массивов #8
В принципе да, просто при добавлении проверять массив на наличие такого же элемента.
Yandex
Объявления
05.12.2013, 12:29     Сравнение двух массивов
Ответ Создать тему
Опции темы

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