Вопрос задан 30.09.2023 в 20:10. Предмет Информатика. Спрашивает Островна Юля.

C ++ Уникальные элементы Дан массив. Распечатайте только те значения элементов массива, которые

встречаются в нем ровно один раз. Элементы следует распечатывать в том порядке, в котором они встречаются в массиве. Создавать новые массивы нельзя. Входные данные В первой строке входных данных содержится натуральное число n (n≤100) — количество элементов массива. В следующей строке содержится n натуральных чисел, не превосходящих 30000 — элементы массива. Выходные данные Выведите ответ на задачу.
0 0
Перейти к ответам

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

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

Ответ:

#include <iostream>

#include <vector>

using namespace std;

int main()

{

   int n;

   cin >> n;

   vector<int> v(n);

   for (int i = 0; i < n; ++i){

       cin >> v[i];

   }

   for (int i = 0; i < n; ++i){

       bool flag = false;

       for (int j = 0; j < i; ++j){

           if (v[i] == v[j]){

               flag = true;

           }

       }

       for (int j = i + 1; j < n; ++j){

           if (v[i] == v[j]){

               flag = true;

           }

       }

       if (flag == false){

           cout << v[i] << " ";

       }

   }

   return 0;

}

Объяснение:

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи вам потребуется использовать структуры данных для подсчета количества вхождений каждого элемента в массиве. Затем вы можете пройтись по массиву и вывести только те элементы, которые встречаются ровно один раз. Вот C++ код для выполнения этой задачи:

cpp
#include <iostream> #include <vector> #include <unordered_map> int main() { int n; std::cin >> n; std::vector<int> arr(n); std::unordered_map<int, int> count; for (int i = 0; i < n; i++) { std::cin >> arr[i]; // Увеличиваем счетчик для текущего элемента в хэш-таблице count[arr[i]]++; } for (int i = 0; i < n; i++) { // Если элемент встречается ровно один раз, выводим его if (count[arr[i]] == 1) { std::cout << arr[i] << " "; // Устанавливаем счетчик для этого элемента в ноль, чтобы избежать дублирования вывода count[arr[i]] = 0; } } return 0; }

Этот код сначала считывает массив и использует хэш-таблицу (std::unordered_map) для подсчета количества вхождений каждого элемента. Затем он проходит по массиву еще раз и выводит только те элементы, которые встречаются ровно один раз.

0 0

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

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

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

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