Написать программу которая находит в массиве значения повторяющиеся два

Подсказка намекает на то, что можно выделить массив нулевых элементов размером, равным числу возможных значений элементов исходного массива. Встретив элемент со значением x, увеличивать x-овый элемент этого массива. Если достигается значение 2 — значит, дубликат.

21 сен 2018 в 7:01
21 сен 2018 в 7:02

Выполняем сортировку подсчётом (любым доступным методом — накоплением значений или в статический массив), в процессе выводим элементы, промежуточное количество которых равно 2.

21 сен 2018 в 7:49

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

есть как минимум 1 вариант с одним проходом:

// хешсет, скорость — линейная, память — линейная public void PrintDublicates_HashSet(int[] n) < var set = new HashSet(); foreach(var item in n) if (!set.Add(item)) Console.WriteLine(item); >

Варианты с несколькими проходами

// сортировка — скорость — nlogn, память — константа public void PrintDublicates_Sort(int[] n) < Array.Sort(n); for(int i=1; i// подсчет. Скорость — линейная, память — зависит от значения макс элемента // при условии, что элементы неотрицательны public void PrintDublicates_Count(int[] n) < int max = n.Max(); int[] counts = new int[max+1]; for (int i = 0; i < n.Length; i++) < counts[n[i]]++; if (counts[n[i]] >1) Console.WriteLine(n[i]); > >
PrintDublicates_HashSet(new int[] ); Console.WriteLine(); PrintDublicates_Sort(new int[] ); Console.WriteLine(); PrintDublicates_Count(new int[] );

Вывод в консоль

Язык C++ с нуля | #31 Поиск элементов массива в c++


1 3 1 3 1 3

Источник: ru.stackoverflow.com

Написать программу которая находит в массиве значения повторяющиеся два

Задача: Написать программу, которая находит в массиве значения, повторяющиеся два и более раз, и показывает их на экран. (Решить с помощь динамических массивов)

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

#include using namespace std; int main () < const int size=10; int *mas=new int [size]; int rep=0; int a=0; for (int i=0;i>mas[i]; > cout if (a>=2) cout delete [] mas; return NULL; >
Пользователь
Регистрация: 04.02.2010
Сообщений: 50

Читайте также:
Какой программой удалить логотип с видео

мм.. посмотри вот. может поможет, программа будет выводить сколько единиц, двоек.. и т.д.. у тебя в массиве.. при желании можно переделать под твое задание
#include
#include
#include
using namespace std;
int main ()
Я не волшебник.. я только учусь
Последний раз редактировалось romec1; 21.04.2010 в 15:33 .
Пользователь
Регистрация: 04.01.2010
Сообщений: 23

Нахождение и замена повторяющихся членов массива в C#

Вот немного переработанный вариант, но тоже с проблемой ратотает правильно только если значение повторяеться один раз, если одинаковых значений в массиве больше 2-х то не срабатывает.

#include using namespace std; int main () < setlocale(LC_ALL,»rus»); const int size=10; int *mas=new int [size]; int *temp=new int [size]; int rep=0; int k=0, a=0; for (int i=0;i>mas[i]; > cout if (a>=2) < temp[k]=rep; k++; >> cout delete [] mas; delete [] temp; return NULL; >
Наркоман самоучка
Форумчанин
Регистрация: 22.07.2007
Сообщений: 276

Ниже реализация Вашей задачи с помощью динамических массивов.

#include using namespace std; const int cArrSize = 10; int main( void ) < int* pNums; int* pRepeatedNums; bool find; pNums = new int[cArrSize]; pRepeatedNums = new int[cArrSize]; for (int i = 0; i < cArrSize; ++i) < cout > pNums[i]; find = false; for (int j = 0; j < i; ++j) if (pNums[j] == pNums[i]) < ++pRepeatedNums[j]; find = true; >if (!find) pRepeatedNums[i] = 1; > for (int i = 0; i < cArrSize; ++i) < if (pRepeatedNums[i] >1) cout delete [] pNums; delete [] pRepeatedNums; system( «pause» ); return 0; >
Регистрация: 22.05.2007
Сообщений: 9,475

А я бы отсортировал массив и потом нашел элементы с одинаковыми соседями — это и будут повторяющиеся значения.

Пользователь
Регистрация: 04.01.2010
Сообщений: 23
Ниже реализация Вашей задачи с помощью динамических массивов.

Спасибо огромное, работает на ура! Единственное, вот пытаюсь понять алгоритм решения. Зачем там переменная bool find и какова её роль здесь. Да и получаеться в первом цикле мы вводим цифры в массив и тут же этот массив проверяем, так?
—-
Впринципе разобрался, щас еще отладчиком пройдусь пару раз и пойму до конца. Спасибо

Читайте также:
Куда уходит интернет программа

Последний раз редактировалось yugik; 21.04.2010 в 19:07 .

Источник: www.programmersforum.ru

Программирование на C, C++, C#

//a) int max=0; do < const int q=6; int A[q][q]; srand(time(NULL)); for(int i=0;i

setlocale(LC_ALL, «Russian»); int a, b; cout << «Введите первое число:»; cin >> a; cout << «.

void init(int *a, int size); void out(int *a, int size); void out_c(int *a, int size); void main() < setlocale(LC_ALL, «Russian.

int a, b; setlocale(0, «rus»); cout << «Введите начало диапазона:»; cin >> a; cout << «Введи.
unsigned int time=86399; ////cout << «Enter time:»; ////cin >> time; //int day = time / 24 / 3600; //.
int s, hours, min; cout << «Enter distance (km):»; cin >> s; cout << «Enter hours and min: int res(); void main() < char brosok; do < setlocale(LC_ALL, «Russian»); srand(time(NULL)); co.

int a, b; setlocale(0, «rus»); cout << «Введите начало диапазона:»; cin >> a; cout << «Введи.

int begin_hours, begin_min, begin_sec; int end_hours, end_min, end_sec; cout
double gb, bit; cout << «Enter the size of the movie(Gb):»; cin >> gb; cout << «Enter speed co.

Архив блога

  • ►2016 (145)
  • ►апреля (48)
  • ►февраля (44)
  • ►января (53)
  • ▼2015 (182)
  • ►декабря (30)
  • ►сентября (13)
  • ►июня (13)
  • ►мая (23)
  • ►апреля (44)
  • ▼марта (59)
  • Пользователь вводит 3 суммы в копейках, небходимо .
  • 20 инопланетян поочередно прилетают на землю с цел.
  • Вводить различные числа. Когда будет введен 0, то .
  • Вводим любое число с клавиатуры и нужно определить.
  • Подсчитать количество натуральных чисел n ( 102 < .
  • Написать программу, которая находит в массиве само.
  • Написать программу, которая находит в массиве знач.
  • Написать программу, которая находит сумму четных и.
  • Написать программу, которая выводит содержимое мас.
  • Написать программу, которая находит минимальное и .
  • Написать программу, которая находит сумму всех отр.
  • Показ содержимого массива на экран
  • Инициализация массива при помощи цикла
  • Найти сумму всех чисел от 1 до 100
  • Выбрать наибольшее из трёх заданных чисел
  • Определить, есть ли среди цифр заданного целого тр.
  • Известны год и номер месяца рождения человека. Опр.
  • Определить максимальное и минимальное значения из .
  • При помощи цикла показать на экран календарь текущ.
  • Написать программу, которая выводит на экран — сле.
  • Создать программу, которая выводит на экран просты.
  • Вывести на экран прямоугольник из символов 20 на 20
  • Написать программу, которая выводит на экран табли.
  • Цикл в цикле
  • Пользователь вводит с клавиатуры число, необходимо.
  • Пользователь вводит с клавиатуры число, необходимо.
  • Пользователь вводит с клавиатуры число — программа.
  • Использование кириллицы в консольных приложениях
  • Пользователь вводить число. Вывести на экран числа.
  • Пользователь с клавиатуры последовательно вводит ц.
  • Часы бьют каждый час, столько раз, сколько времени.
  • Операторы break и continue для конструкции for
  • пример конструкции for
  • Дано натуральное число n. Написать программу, кото.
  • Написать программу, которая находит сумму всех цел.
  • Разработать программу, которая выводит на экран го.
  • Написать программу, выводящую на экран линию из 5 .
  • Написать программу, которая находит сумму всех цел.
  • Пример do while
  • Пример while
  • Напишите программу, реализующую популярную телевиз.
  • Известно, что 1 дюйм равен 2.54 см. Разработать пр.
  • Дано натуральное число а (a меньше 100). Напишите .
  • Напишите программу, проверяющую число, введенное с.
  • Программа, которая переводит систему буквенных оце.
  • Структура множественного выбора switch
  • Практический пример на принадлежность точки кольцу.
  • Лесенка if — else if
  • Программа, будет определять, какое из двух чисел, .
  • Тернарный оператор УТВЕРЖДЕНИЕ ИЛИ ВЫРАЖЕНИЕ?ДЕЙСТ.
  • Если к блоку if или else относится только одна ком.
  • Конструкция if без else
  • Конструкция логического выбора if
  • Пример, использующий преобразование типов
  • Программа для выяснения параметров окружности
  • Введите три числа и выведите на экран значение сум.
  • В C нет операции возведения в квадрат.Напишите про.
  • Напишите программу, которая переводит гривны в $, .
  • Напишите программу, вычисляющую среднее арифметиче.
Читайте также:
Какая программа сканирует документы на Айфоне

Источник: prog88.blogspot.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru