|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.01.2012, 17:00 | #1 |
Пользователь
Регистрация: 03.10.2011
Сообщений: 93
|
Задача на массив...
Помогите написать программу.
Дано N чисел. Вывести числа встречающие более одного раза. Последний раз редактировалось Анастасия12; 19.01.2012 в 17:09. |
19.01.2012, 17:15 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
два вложенных цикла.
первый от 1 до N-1 второй до I+1 до N во вложенном цикле перебирать и сравнивать, если совпало A[i] = A[j] выводить A[i] и прерывать вложенный цикл. такой простой подход позволит легко вывести все числа, встречающиеся в массиве более одного раза. НО! Числа будут выведены столько раз, сколько они встречаются. Если хочется выводить число по одному разу, то в тот кусок кода, где нашли совпадение, нужно вставить ещё один цикл переборать числа от 1 до I-1. искать совпадение с A[i]. если ничего не нашлось - только в этом случае печатать найденное число. (другими словами - число-дубликат должно быть найдено ПОСЛЕ текущего числа и не должно быть найдено ДО него же.. ) |
19.01.2012, 17:18 | #3 |
Пользователь
Регистрация: 03.10.2011
Сообщений: 93
|
Спасибо огромное, очень полезная для меня информация.
Извини пожалуйста что утруждаю тебя, но можешь написать эту задачу в Паскале. Если не сложно?? |
19.01.2012, 17:31 | #4 |
Форумчанин
Регистрация: 19.11.2009
Сообщений: 155
|
Код:
По всем вопросам связанным с Делфи или Паскаль обращайтесь, чем смогу тем и помогу.
Помог жми на весы!!! dmi83206389@mail.ru |
19.01.2012, 17:34 | #5 |
Пользователь
Регистрация: 03.10.2011
Сообщений: 93
|
Огромное спаисбо)
|
19.01.2012, 17:53 | #6 |
Новичок
Джуниор
Регистрация: 15.01.2012
Сообщений: 2
|
Правильнее вот так:
Код:
Последний раз редактировалось tema12t; 19.01.2012 в 18:07. |
19.01.2012, 18:45 | #7 |
Пользователь
Регистрация: 15.01.2012
Сообщений: 46
|
Эта программа выведет ВСЕ повторяющиеся числа!(например, если число 2 встречается 5 раз, то программа и выведет его 5 раз). А как сделать, чтобы она выводила только 1 раз повторяющееся число?
|
19.01.2012, 19:18 | #8 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Дык вроде бы написано как.
Еще есть такой вариант решения задачи если известен диапазон значений чисел в массиве, т.е. например в массиве генератором псевдослучайных чисел генерируются числа от 0 до 50: создаем другoй массив [0..50], заполняем его например нулями (по-моему в паскале и так заполняется либо есть функция fillchar, ну или самое простое просто циклом по всему массиву), проходим первый массив в цикле и элемент второго массива под номером = значению в первом массиве увеличиваем на единицу (т.е. b[a[i]] := b[a[i]] + 1). Потом проходим его и если значение элемента больше единицы, выводим его номер. т.е. примерно так, код похожей задачи: Код:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
19.01.2012, 19:33 | #9 | |
Новичок
Джуниор
Регистрация: 15.01.2012
Сообщений: 2
|
Цитата:
Код:
|
|
20.01.2012, 09:55 | #10 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
мда... а моим алгоритмом никто не захотел воспользоваться..
ладно. тогда ловите мой вариант решения этой простенькой задачки: Код:
___________ tema12t не теряйте Randomize; - это важно, чтобы последовательность случайных чисел была разной! Цитата:
if (a[i]>=0) and (a[i]<=9) then Inc( k[a[i]] ); |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача на массив | serg93 | Помощь студентам | 2 | 19.10.2011 16:50 |
Задача на массив | Casper098 | Помощь студентам | 1 | 18.10.2011 14:44 |
задача на массив | кира1005 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 25.06.2011 19:33 |
Задача на МАССИВ | Новичок1 | Помощь студентам | 3 | 11.12.2010 13:41 |
Задача на массив | foxzibit123 | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 25.07.2010 21:16 |