Массивы
Дан массив целых чисел. Для каждого из этих чисел выяснить сколько раз каждое число входит в этот массив. Результат представить в виде ряда строк, первая из которых есть А1- k, где k - есть число вхождений А1 в последовательность. Вторая строка будет иметь вид Аi- m, где Аi -есть первый по порядку член, отличный от А1, m - число вхождений этого члена в последовательность и т.д.
т.е. например дан массив 6 9 3 1 3 6 6 элемент - кол-во вхождений 6 - 3 9 - 1 3 - 2 1 - 1 Сам хочу решить, ничего на ум не приходит. Как это можно реализовать? |
язык программирования какой?
Реализовать можно через двумерный массив, через последовательный анализ одномерного массива, через последовательности и прочее... В общих чертах, через двумерный массив алгоритм следующий: Заводится двумерный массив [N,2], в 1 столбец которого в цикле анализа исходного массива заносятся встреченные числа, а во второй столбец - соответственно количество повторений каждого числа. По окончании анализа исходного массива выводится полученный двумерный массив. |
Алекс, я уже прикидывал - тут есть одна тонкость, связанная с исключением повторов. Позже помаракую - сейчас некогда.
|
С этим никаких проблем - вложенные циклы и все дела! :)
А вот с ЯП - ещё та трудность. :( |
AlexZir
язык программирования С++, условия реализации - через одномерные массивы Vladimir_S Вы правы, здесь есть тонкость - повторяющиеся элементы. Есть вариант создать еще один массив, в него переписать элементы первого массива без повторений, и завести массив счетчиков, куда будет заносится кол-во вхождений каждого элемента, как-то так)) |
Цитата:
|
Вышеупомянутый мной двумерный массив можно представить как два одномерных массива с размерностью, не превышающей размерность исходного массива :)
|
Вот, настрочила кой-чего
Код:
# include <conio.h> |
Придумал один довольно-таки тупой алгоритм. Но работает. Реализация, к сожалению, на Паскале - на Си я не пишу. Полагаю, что перевести с языка на язык проблем не составит. Если, конечно, алгоритм устроит.
Суть: 1. Ищется максимальное значение исходного массива (М). 2. Путем последовательного перебора натуральных чисел (i) от 0 до М заполняется массив счетчиков количества вхождений каждого i в исходный массив. 3. Организован вывод опять же чисел i от 0 до М и соответствующих значений счетчиков, но только тех, где счетчики отличны от нуля. Всё. Код:
const |
Цитата:
|
Часовой пояс GMT +4, время: 17:39. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.