Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Для новичков > Решить задачу второй курс |
Автор: Ivan51 21.12.2016, 21:32 |
Дан упорядоченный массив целых чисел. Напечатать элемент, повторяющийся в массиве чаще всего, а также количество повторений. Если есть несколько элементов, повторяющихся одинаковое число раз, выбрать любой из них. |
Автор: likehood 21.12.2016, 23:08 |
Не знаешь с чего начать? Для начала заведи переменную-счётчик, в которой будет храниться число идущих подряд одинаковых элементов. Пройдись по всему массиву, сравнивая текущий элемент с предыдущим. Если они равны, смело увеличивай счётчик на единицу. Если нет, счётчик нужно сбросить в начальное состояние. Пройдись по программе отладчиком, убедись, что она работает правильно. А дальше останется найти максимальное значение этого счётчика - это уже несложно сделать. Если есть вопросы - спрашивай. |
Автор: Olej 21.12.2016, 23:33 | ||
А что, в условии было хоть 2 слова про что-то там "подряд"? ![]() Я что-то пропустил? |
Автор: baldman88 21.12.2016, 23:51 | ||||||
А какой язык? С или С++? Добавлено через 3 минуты и 33 секунды
|
Автор: Ivan51 22.12.2016, 00:21 |
C++ |
Автор: vpf 22.12.2016, 13:41 |
Надо создать новый двухмерный массив, в котором каждая пара элементов это число и количество повторений. Затем перебрать исходный массив, алгоритм такой 1. Есть ли во втором массиве такое число? 1.1 Нет, создать новую пару, значение числа = число, значение счетчика = 1. 1.2 Да, значение счетчика увеличить на 1 2. Пройтись по второму массиву и найти наибольшее значение счетчика. 2.1 Значение счетчика найдено. Вывести значение числа. Все. |
Автор: likehood 22.12.2016, 14:45 |
vpf, твой алгоритм подходит для произвольного массива. Если массив упорядочен, то алгоритм можно немного упростить. Только нужно ли это автору вопроса? Может он просто хотел получить готовую программу. А мы тут советы какие-то даём. |
Автор: solowey 22.12.2016, 16:25 | ||
Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Reshit-zadachu-vtoroy-kurs-id585acade84a74b47f2226b33#findElement_E7045_585bd46107af936cb745078b_0 |
Автор: Dmi3ev 9.1.2017, 02:41 | ||
Можно лучше, но пофиг) |