Необходимо два массива объединить в один и оставить в нем только не общие элементы. Например arr1 {1,2,3,4} + arr2{1,1,5,6}, результат arr3 {3,4,6}.
const int SIZE1 = 8;
const int SIZE2 = 5;
int arr1[SIZE1] = { 0 };
int arr2[SIZE2] = { 0 };
cout << "First array
";
for (int i = 0; i < SIZE1; i++){
arr1[i] = rand() % 20;
cout << arr1[i] << '\t';
}
cout << "
Second array
";
for (int i = 0; i < SIZE2; i++){
arr2[i] = rand() % 20;
cout << arr2[i] << '\t';
}
cout << endl;
const int SIZE3 = SIZE1 + SIZE2;
int arr3[SIZE3] = { 0 };
cout << "Third array
";
for (int i = 0; i < SIZE3; i++){
arr3[i] = arr1[i];
if (i >= SIZE1)
arr3[i] = arr2[i-SIZE1];
cout << arr3[i] << '\t';
}
cout << endl;
const int SIZE4 = SIZE3;
int arr4[SIZE4] = { 0 };
int size4 = 0;
for (int i = 0; i < SIZE4; i++){
for (int j = 0; j < SIZE4; j++){
if (arr3[i] == arr3[j]&&i!=j)
break;
else if (arr3[i] != arr3[j]&&j
}
Ответ
Так вот, решение которое я реализовала:
const int SIZE1 = 5;
const int SIZE2 = 7;
int arr1[SIZE1] = { 0 };
int arr2[SIZE2] = { 0 };
for (int i = 0; i < SIZE1; i++)
cout << (arr1[i] = rand() % 10) << "\t";
cout << endl;
for (int i = 0; i < SIZE2; i++)
cout << (arr2[i] = rand() % 10) << "\t";
cout << endl;
const int SIZE3 = SIZE2+SIZE1;
int arr3[SIZE3] = { 0 };
int size3 = 0;
//сравниваем 1 со вторым, разницу записыв в 3
for (int i = 0; i < SIZE1; i++) {
for (int j = 0; j < SIZE2; j++) {
if (arr1[i] == arr2[j])
{
break;
}
else if (arr1[i] != arr2[j]) {
bool exist = false;
for (int k = 0; k < size3; k++) {
if (arr1[i] == arr3[k]) {
exist = true;
break;
}
}
if (exist == false&&j==SIZE2-1) {
arr3[size3] = arr1[i];
size3++;
break;
}
}
}
}
//сравниваем 2 массив с первым, разницу записываем в 3 с места где закончилась запись сравнения 1 и 2
for (int i = 0; i < SIZE2; i++) {
for (int j = 0; j < SIZE1; j++) {
if (arr2[i] == arr1[j])
{
break;
}
else if (arr2[i] != arr1[j]) {
bool exist = false;
for (int k = 0; k < size3; k++) {
if (arr2[i] == arr3[size3-k]) {
exist = true;
break;
}
}
if (exist == false && j == SIZE1 - 1) {
arr3[size3] = arr2[i];
size3++;
break;
}
}
}
}
cout << "Array 3
";
for (int i = 0; i < size3; i++) {
cout << arr3[i] << "\t";
}
Всем участника спасибо за помощь!
Комментариев нет:
Отправить комментарий