
Вопрос задан 25.07.2023 в 13:27.
Предмет Информатика.
Спрашивает Самохвалов Макс.
Напишите программу в c++. Дан массив из N целых чисел. Обнулить все повторяющиеся элементы массива.
Результирующий массив вывести на экран.

Ответы на вопрос

Отвечает Занковец Максим.
n - кол-во элементов в массиве, a[] - сам массив.
Алгоритм работает в тупую за O(n²)
Вот весь алгоритм:
for (int i = 0; i < n; i++) {
for (int j = i - 1; j >= 0; j--) {
int flag = 1;
if (a[j] == a[i]) {
flag = 0;
break
}
if (flag)
a[i] = 0;



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Для обнуления повторяющихся элементов в массиве вам потребуется два шага: сначала найти повторяющиеся элементы, а затем обнулить их. Ниже представлена C++ программа, которая выполняет данную задачу:
cpp#include <iostream>
#include <unordered_set>
void zeroOutDuplicates(int arr[], int size) {
std::unordered_set<int> unique_elements;
for (int i = 0; i < size; i++) {
if (unique_elements.find(arr[i]) != unique_elements.end()) {
arr[i] = 0;
} else {
unique_elements.insert(arr[i]);
}
}
}
int main() {
int N;
std::cout << "Введите размер массива: ";
std::cin >> N;
int* arr = new int[N];
std::cout << "Введите " << N << " целых чисел: ";
for (int i = 0; i < N; i++) {
std::cin >> arr[i];
}
zeroOutDuplicates(arr, N);
std::cout << "Результирующий массив: ";
for (int i = 0; i < N; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
delete[] arr;
return 0;
}
Как работает программа:
- Мы используем
std::unordered_set
для хранения уникальных элементов. - Проходим по каждому элементу массива, и если элемент уже присутствует в
unique_elements
, то мы обнуляем его, иначе добавляем его вunique_elements
. - В итоге все повторяющиеся элементы массива будут обнулены.
Программа сначала запрашивает у пользователя размер массива и затем сам массив. Затем программа обнуляет повторяющиеся элементы и выводит результирующий массив на экран.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili