Даны два массива чисел. Требуется вывести те элементы первого массива (в том порядке, в каком они идут в первом массиве), которых нет во втором массиве. Входные данные
Во входном файле записано сначала число N - количество элементов в первом массиве, затем N чисел - элементы массива.
Затем записано число M - количество элементов во втором массиве. Затем записаны элементы второго массива.
Количество элементов каждого массива не превышает 100. Сами элементы по модулю не превышают 1000. Все числа целые

Выходные данные
В выходной файл выведите те элементы первого массива, которых нет во втором в том порядке, в каком они идут в первом массиве.

Пример входного файла
7
3 1 3 4 2 4 12
6
4 15 43 1 15 1

Пример выходного файла
3 3 2 12

Решить на C++

Reginalolo Reginalolo    3   22.12.2020 20:42    33

Ответы
lubovmarkina3 lubovmarkina3  08.01.2024 13:31
Хорошо, давайте решим эту задачу пошагово.

1. Считываем входные данные:
- Сначала считываем число N - количество элементов в первом массиве.
- Затем считываем N чисел - элементы первого массива.
- Далее считываем число M - количество элементов во втором массиве.
- Затем считываем M чисел - элементы второго массива.

Например, в нашем примере входных данных:
- N = 7
- Первый массив: [3, 1, 3, 4, 2, 4, 12]
- M = 6
- Второй массив: [4, 15, 43, 1, 15, 1]

2. Создаем пустой массив result для хранения элементов первого массива, которых нет во втором массиве.

3. Проходим по каждому элементу первого массива и проверяем, есть ли он во втором массиве:
- Если элемента нет во втором массиве, добавляем его в массив result.

4. Выводим элементы массива result, которые представляют собой элементы первого массива, не содержащиеся во втором массиве.

Приведу реализацию на языке C++:

```cpp
#include
#include

int main() {
// Шаг 1: считываем входные данные
int N;
std::cin >> N;

std::vector firstArray(N);
for (int i = 0; i < N; i++) {
std::cin >> firstArray[i];
}

int M;
std::cin >> M;

std::vector secondArray(M);
for (int i = 0; i < M; i++) {
std::cin >> secondArray[i];
}

// Шаг 2: создаем пустой массив для хранения результатов
std::vector result;

// Шаг 3: проверяем каждый элемент первого массива
for (int i = 0; i < N; i++) {
bool found = false;

// Проверяем, есть ли элемент во втором массиве
for (int j = 0; j < M; j++) {
if (firstArray[i] == secondArray[j]) {
found = true;
break;
}
}

// Если элемента нет во втором массиве, добавляем его в результат
if (!found) {
result.push_back(firstArray[i]);
}
}

// Шаг 4: выводим результат
for (int i = 0; i < result.size(); i++) {
std::cout << result[i] << " ";
}
std::cout << std::endl;

return 0;
}
```

Теперь мы можем скомпилировать и запустить эту программу, чтобы получить ожидаемый вывод:

```
Входные данные:
7
3 1 3 4 2 4 12
6
4 15 43 1 15 1

Выходные данные:
3 3 2 12
```

Надеюсь, это понятно и полезно для школьника. Если возникнут дополнительные вопросы, пожалуйста, дайте мне знать!
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика