
C++ «C»: Заполните массив случайными числами. Определить, есть ли в нем элементы с
одинаковыми значениями, не обязательное стоящие рядом. 

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

Ответ:
Объяснение:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
setlocale(LC_ALL, "RU");
int N;
cin >> N;//массив на N элементов
vector<int>a;
for (int i = 0; i < N; i++)
a.push_back(rand()%100);// заполнение массива числами от 0 до 100
for (int i = 0; i < N; i++)
cout << a[i] << " ";
cout << endl;
bool flag=false;
int number;
for (int i = 0; i < N; i++) {
auto r = find(a.begin(), a.end(),a[i]);// функция стандартной библиотеки для поиска
if (r != a.end()&&r-a.begin()!=i)
{
number = r - a.begin();// номер элемента массива с одинаковым значением
flag = true;
break;
}
}
if (flag)
cout <<"В массиве присутствуют элементы с одинаковыми значениями. Одним из равных значений является: "<<a[number];
else
cout << "В массиве не присутствуют элементы с одинаковыми значениями";
}




Для решения этой задачи вам нужно заполнить массив случайными числами, а затем проверить, есть ли в нем элементы с одинаковыми значениями, которые не обязательно стоят рядом. Вот пример кода на C++ для выполнения этой задачи:
cpp#include <iostream>
#include <cstdlib>
#include <ctime>
#include <vector>
#include <unordered_set>
int main() {
// Инициализация генератора случайных чисел
std::srand(static_cast<unsigned>(std::time(nullptr)));
// Размер массива
int size;
std::cout << "Введите размер массива: ";
std::cin >> size;
// Создаем массив и заполняем его случайными числами
std::vector<int> arr(size);
for (int i = 0; i < size; ++i) {
arr[i] = std::rand();
}
// Используем unordered_set для проверки наличия повторяющихся элементов
std::unordered_set<int> uniqueElements;
bool hasDuplicates = false;
for (int i = 0; i < size; ++i) {
if (uniqueElements.find(arr[i]) != uniqueElements.end()) {
hasDuplicates = true;
break;
}
uniqueElements.insert(arr[i]);
}
if (hasDuplicates) {
std::cout << "В массиве есть элементы с одинаковыми значениями." << std::endl;
} else {
std::cout << "В массиве нет элементов с одинаковыми значениями." << std::endl;
}
return 0;
}
В этом коде мы сначала создаем массив заданного размера и заполняем его случайными числами. Затем мы используем контейнер unordered_set
для хранения уникальных значений массива и проверки наличия повторяющихся элементов. Если в массиве есть элементы с одинаковыми значениями, программа выводит сообщение об этом.


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