• Предмет: Информатика
  • Автор: blackzenya
  • Вопрос задан 3 месяца назад

Задано масив цілих чисел A(n), n ≤ 200 . Розробити програму, яка виводить на екран

всі числа, що повторюються, по одному разу. Якщо чисел, що повторюються, немає, то

виводить повідомлення про це.​


MagicSticks: На якій мові?
blackzenya: c++

Ответы

Ответ дал: MagicSticks
0

Ответ:

#include <iostream>

#include <vector>

#include <unordered_map>

int main() {

   int n;

   std::cout << "Введіть кількість елементів масиву n: ";

   std::cin >> n;

   std::vector<int> A(n);

   std::unordered_map<int, int> frequency;

   std::cout << "Введіть елементи масиву A:" << std::endl;

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

       std::cin >> A[i];

       frequency[A[i]]++;

   }

   bool foundDuplicates = false;

   std::cout << "Числа, що повторюються по одному разу:" << std::endl;

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

       if (frequency[A[i]] == 1) {

           std::cout << A[i] << std::endl;

           foundDuplicates = true;

       }

   }

   if (!foundDuplicates) {

       std::cout << "Немає чисел, що повторюються по одному разу." << std::endl;

   }

   return 0;

}



Використовуємо масив A для зберігання введених чисел і std::unordered_map під назвою frequency для відстеження кількості повторень кожного числа. Потім ми проходимося по масиву A, перевіряємо, скільки разів кожне число повторюється, і виводимо числа, що повторюються по одному разу. Якщо таких чисел немає, виводимо відповідне повідомлення.


----------------------------------------------------------------------------------------------------------

#include <iostream>

#include <vector>

#include <unordered_map>

int main() {

   int n;

   std::cout << "Введіть кількість елементів масиву n: ";

   std::cin >> n;

   std::vector<int> A(n);

   std::unordered_map<int, int> frequency;

   std::cout << "Введіть елементи масиву A:" << std::endl;

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

       std::cin >> A[i];

       frequency[A[i]]++;

   }

   bool foundDuplicates = false;

   std::cout << "Числа, що повторюються:" << std::endl;

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

       if (frequency[A[i]] > 1) {

           std::cout << A[i] << std::endl;

           foundDuplicates = true;

           // Видаліть запис про це число, щоб не виводити його повторно

           frequency[A[i]] = 1;

       }

   }

   if (!foundDuplicates) {

       std::cout << "Немає чисел, які повторюються." << std::endl;

   }

   return 0;

}

Цей код виводитиме лише ті числа, які мають кількість більше одного, і вони виводяться тільки один раз.


blackzenya: числа що повторюються по одному разу це так: 2 ,2;5, 5
blackzenya: і якщо можна зробити Одно мірним масивом
Вас заинтересует