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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 32, средняя оценка - 4.66
maksbuck
0 / 0 / 0
Регистрация: 03.07.2012
Сообщений: 5
#1

Переписать в третий массив общие элементы первых двух массивов без повторений - C++

16.07.2012, 16:12. Просмотров 4442. Ответов 2
Метки нет (Все метки)

Даны 2 массива размерности M и N соответственно.
Необходимо переписать в третий массив общие элементы первых двух массивов без повторений.

Добавлено через 3 минуты
в решении необходимо использовать 1 вложенный цикл. Часть кода я уже написал...не могу понять как сделать чтоб элементы массива не повторялись.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for (i=0; i<N; i++)
    {
        
        for (j=0;j<M;j++)
            if(B[i]==A[j])  
                {
                C[p]=B[i];
                p++;
                break;
                }
        
        
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2012, 16:12     Переписать в третий массив общие элементы первых двух массивов без повторений
Посмотрите здесь:

C++ Создать массив минимально возможного размера, в котором нужно собрать общие элементы двух заданных массивов
C++ Создать динамический массив нужного размера и скопировать в него все положительные элементы из первых двух массивов
Создать третий массив, в котором нужно собрать элементы двух заданных массивов C++
C++ Записать в массив общие элементы других массивов, без повторения одинаковых элементов
C++ Сформировать третий массив, в котором элементы первых двух расположены в заданном порядке
Необходимо переписать в третий массив общие элементы первых двух массивов без повторений C++
Переписать в третий массив элементы данных двух массивов C++
Функция находящая общие элементы двух массивов C++
C++ Создать массив, содержащий только общие элементы массивов А и В без повторов
C++ Поместить в третий массив общие элементы двух массивов
C++ Построить строку в которую войдут только общие символы двух строк в алфавитном порядке и без повторений
Все различающиеся элементы двух исходных массивов скопировать в третий массив C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fooly
21 / 17 / 1
Регистрация: 26.03.2012
Сообщений: 147
16.07.2012, 17:36     Переписать в третий массив общие элементы первых двух массивов без повторений #2
Вроде как работает. Напихал все циклы, которые только возможно
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
#include <iostream>
using namespace std;
const int M = 6;
const int N = 5;
const int L = M+N;//можно сравнить M и N и приравнять больший из них к L, но так легче... мне
int main()
{
    setlocale (LC_ALL, "Russian");
    int mas1 [M];
    int mas2 [N];
    int mas3 [L];
    for (int i=0; i <M; i++)
        {cout << "Введите " << i+1 << " элемент массива mas1: ";
    cin >> mas1[i];}
    for (int i=0; i <N; i++)
        {cout << "Введите " << i+1 << " элемент массива mas2: ";
    cin >> mas2[i];}
    int j=0;    
    int k=0;
    while (j<M)
      {for (int i=0; i<N; i++)//прогоняет все элементы первого массива, сравнивая с
        {                     //одним (j-м) элементом второго массива
         int p=0;       
           if (mas1[i]==mas2[j]) //элементы двух массивов одинаковы
              {for (int l=0; l<L; l++)
                  if (mas1[i]==mas3[l]) //проверяет наличие подобного элемента в 3-м массиве
                    p+=1;   
               if (p==0) //если элементы двух массивов одинаковы и он(элемент) не нашёлся в 3 массиве
                    {mas3[k]=mas1[i];
                     cout << k+1 << " элемент массива mas3 равен " << mas3[k]<< endl;
                     k+=1;
                     }}}
          j++;}//начинаем прогон следующего элемента второго массива
    for (int i=0; i<100; i++)//этот кусок, чтобы консоль не закрывалась при нажатиях Enter, можно убрать 
        cin.get();
    return 0;
}
maksbuck
0 / 0 / 0
Регистрация: 03.07.2012
Сообщений: 5
16.07.2012, 17:51  [ТС]     Переписать в третий массив общие элементы первых двух массивов без повторений #3
Fooly,
да спасибо, работает)
я только 1 исправил, чтоб массивы заполнялись рандомными числами)
Yandex
Объявления
16.07.2012, 17:51     Переписать в третий массив общие элементы первых двух массивов без повторений
Ответ Создать тему
Опции темы

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