Вроде как работает. Напихал все циклы, которые только возможно
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;
} |
|