7 / 7 / 4
Регистрация: 30.11.2015
Сообщений: 107
|
|
1 | |
Удалить из массива все элементы, которые встречаются больше двух раз16.01.2016, 20:22. Показов 4607. Ответов 14
Метки нет Все метки)
(
Дан целочисленный массив размера N. Удалить из массива все элементы, которые встречаются больше двух раз.
Вопрос1: это значит что массив уже записан и его не нужно вводить с клавиатуры? Вопрос2: как можно реализовать нахождение и удаление элементов?
0
|
|
16.01.2016, 20:22 | |
Ответы с готовыми решениями:
14
Удалить из одномерного массива все элементы, которые встречаются больше двух раз Удалить из последовательности слова которые встречаются больше 1 раза.
Удалить элементы массива которые встречаются больше двух раз |
1 / 1 / 1
Регистрация: 10.01.2016
Сообщений: 58
|
|
16.01.2016, 21:37 | 2 |
0
|
Эксперт Hardware
![]() |
|
16.01.2016, 23:04 | 3 |
Если искомые элементы расположены подряд, то сравнивай с предыдущим..
Если валяются в массиве вразброс, то берёшь первый элемент и сканиш всю строку. Берёшь второй элемент, и опять ищешь его по-всей строке, ...и так для всех элементов массива. Как найдёшь - увеличивай счётчик, и проверяй его на 3. Как-то так, наверное...
1
|
7 / 7 / 4
Регистрация: 30.11.2015
Сообщений: 107
|
|
22.01.2016, 22:05 [ТС] | 4 |
Дан целочисленный массив размера N. Удалить из массива все элементы, которые встречаются больше двух раз. Помогите пожалуйста!
0
|
7 / 7 / 4
Регистрация: 30.11.2015
Сообщений: 107
|
||||||
23.01.2016, 00:16 [ТС] | 6 | |||||
R71MT, нашел в какой-то книге пример инициализации массива, но он как-то вообще криво работает...
0
|
7 / 7 / 4
Регистрация: 30.11.2015
Сообщений: 107
|
|
23.01.2016, 15:40 [ТС] | 8 |
R71MT, именно
0
|
Ушел с форума
![]() 15840 / 7422 / 994
Регистрация: 11.11.2010
Сообщений: 13,386
|
|
23.01.2016, 15:50 | 9 |
Dialkord228,
для упрощения задачи -- отсортируй элементы массива по возрастанию или убыванию (как сортировать смотри в https://www.cyberforum.ru/asse... 90127.html) одинаковые элементы окажутся рядом, вот тогда и удаляй их
2
|
Эксперт Hardware
![]() |
||||||
23.01.2016, 18:34 | 10 | |||||
![]() Решение
Точно..., можно-же было сделать так! Век живи - век учись..
![]() А я пошёл чуть по-другому пути. Читал очередной элемент и смотрел, сколько раз он встретиться в массиве. Если меньше двух, то записывал его в буфер:
1
|
0 / 0 / 0
Регистрация: 15.05.2021
Сообщений: 1
|
|
06.06.2021, 17:46 | 11 |
R71MT, не подскажете рабочий код для этого задания? мне нужно как-то организовать чтобы еще с клавиатуры вводились значения, то есть неизвестное количество элементов.
преподаватель лекции только скидывал, но там ничего хоть немного схожего по сложности или типу этого задания не нашла:( Насколько поняла алгоритм: 1. ввести количество элементов 2. ввести элементы и занести их в массив 3. отсортировать 4. проверяем элементы равен ли текущий следующему если да то счетчик+1 если нет то обнуляем если счетчик достигнет 3 то текущий элемент удаляется
0
|
Модератор
![]() |
||||||
06.06.2021, 19:12 | 12 | |||||
nekl, ассемблер - такой же модульный язык программирования, как и C/Delphi/Perl/Python.
Т.е. для ряда повторяющихся действий код можно вынести в подпрограммы и использовать, многократно вызывая. Если программируете при помощи TASM или MASM для DOS, будут полезны закреплённые темы Ввод и вывод чисел в различных системах счисления Программа для сортировки любого массива Если программируете в SASM (NASM), MASM32, Emu8086, то эти пакеты имеют собственные готовые библиотеки ввода и вывода, достаточно удобные. По организации программирования - начните с простейшей программы и последовательно наращивайте её сложность. Мегапрограммы никто на уроках не пишет. 1. вывод строки 2. вывод числа 3. вывод массива 4. ввод числа и его контрольный вывод 5. ввод массива и его контрольный вывод 6. теперь нужно отработать алгоритм на массиве, заданном в коде (без ввода) - исходный массив выводите, сортируете, выводите итоговый массив 7. продолжаете - после сортировки обрабатываете массив и выводите его третий раз 8. объединяете два кода - ввод и обработка Весь код набирать не буду, он достаточно большой получится, мне так же, как и вам, лень его делать, но у вас выбора нет. Пробуйте. Будут вопросы - подскажу. Добавлено через 8 минут Сам алгоритм выявления чисел, которые встречались в массиве более 2 раз, будет чуть другим. Решал недавно для masm32 (Windows) с использованием готовой библиотечной сортировки и без ввода - только вывод исходного, обработка и вывод результата. Удалить из массива все элементы, встречающиеся более двух раз Если массив можно изменять, то 1. сортировать массив 2. используя 2 указателя копировать элементы массива, примерно следующим алгоритмом (набирал в браузере, мог ошибиться)
В принципе, indx==left+2+deleted, поэтому можно какую-то переменную не заводить. Добавлено через 14 минут Не по теме: nekl, также добавлю, что R71MT сейчас преподаёт ассемблер в колледже или ВУЗе, т.е. принципиально не будет "подсказывать рабочий код для этого задания".
0
|
Модератор
![]() |
|
07.06.2021, 13:16 | 14 |
R71MT, прошу прощения, перепутал.
0
|
Модератор
![]() |
|||||||||||
07.06.2021, 19:35 | 15 | ||||||||||
nekl, без ввода массива - это сделаете самостоятельно
Что-то вроде
0
|
07.06.2021, 19:35 | |
Помогаю со студенческими работами здесь
15
Обнулить все элементы массива, которые встречаются более двух раз дописать ( Из массива А удалить все элементы, которые встречаются в В ровно 2 раза. Из В переписать в С те элементы, которые совпадают с оставшимися) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |