Вопрос задан 25.07.2023 в 13:27. Предмет Информатика. Спрашивает Самохвалов Макс.

Напишите программу в c++. Дан массив из N целых чисел. Обнулить все повторяющиеся элементы массива.

Результирующий массив вывести на экран.
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Занковец Максим.

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;

0 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; }

Как работает программа:

  1. Мы используем std::unordered_set для хранения уникальных элементов.
  2. Проходим по каждому элементу массива, и если элемент уже присутствует в unique_elements, то мы обнуляем его, иначе добавляем его в unique_elements.
  3. В итоге все повторяющиеся элементы массива будут обнулены.

Программа сначала запрашивает у пользователя размер массива и затем сам массив. Затем программа обнуляет повторяющиеся элементы и выводит результирующий массив на экран.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос