![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 29.11.2017
Сообщений: 63
|
![]()
Условие-
Заданный массив с n чисел, в котором все элементы разные. Удалить из массива минимальный элемент. Удалить элемент массива означает: изъять этот элемент из массива смещением всех элементов, следующие за ним, на одну позицию влево, и присвоить последнему элементу массива значение 0. Написал так-(сказали что не правильно) Код:
Последний раз редактировалось dastreba; 29.11.2017 в 03:45. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
![]()
Не нужно использовать Random без предварительной инициализации генератора:
Код:
А ответ дан прямо в задании: "Заданный массив с n чисел, в котором все элементы разные." Соответственно, рандом(10) тут уже не подходит, нужно как минимум брать n. Ещё вот тут проще сделать цикл до n - 1 вместо декремента размера массива, а A[n] отдельно присваивать значение 0 (по заданию должно быть так - "присвоить последнему элементу массива значение 0"): Код:
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Последний раз редактировалось Sciv; 29.11.2017 в 07:50. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
![]()
Ну и вообще - можно использовать функции. Как-нибудь так:
Код:
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
![]() |
![]() |
![]() |
#4 | |
Пользователь
Регистрация: 29.11.2017
Сообщений: 63
|
![]() Цитата:
Прост это слишком сложно понять,я такое еще не проходил |
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
здесь, разумеется должен быть for
это Вы не делаете. (хотя, я не вижу смысла в этом присваивании) randomize в начале не помешает, даже если у Вас Pascal ABC или Pascal ABC.NET (хотя там он и не нужен). а в остальном всё работает: https://ideone.com/mHsGVQ Код:
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Так, на всяк случай)) Перемещать элементы массива к началу можно и без цикла процедурой move
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
![]()
Смысл есть: после сдвига в конце массива будет два одинаковых значения, если не занулять последний элемент. Соответственно, это уже не будет первоначальным массивом, сдвинутым на 1 позицию влево
Цитата:
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Последний раз редактировалось Sciv; 29.11.2017 в 11:19. |
|
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
![]() Цитата:
Ну для того, чтобы было проще, берите свою вполне работающую программу и допиливайте её с учётом всех перечисленных замечаний. Кратко по замечаниям: 1) Использовать Randomize 2) Сделать заполнение массива уникальными значениями 3) Присваивать последнему элементу значение 0 после сдвига 4) Опционально - использовать процедуру move, про которую упоминал Аватар
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
|
![]() |
![]() |
![]() |
#9 | |
Пользователь
Регистрация: 29.11.2017
Сообщений: 63
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#10 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
будет два нулевых. И что? чем это лучше, чем два одинаковых ненулевых? во-вторых, в массиве на 100 элементов мы заполняем первые n - остальные нас не интересуют. После уменьшения размера массива на единицу, нас уже не будет интересовать, какие там элементы, ПОСЛЕ n в-третьих, в условии сказано про разные элементы массива только для того, чтобы не возникал вопрос - какой из минимальных элементов удалять - первый, последний или вообще все. Очевидно, что в массиве из разных элементов минимальный только один. Вот его и надо удалить. и, к слову, ничего не сказано, как массив заполнен. вполне можно и так: for i:=1 to n do A[i] := i; |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Записать элементы массива X, удовлетворяющие условию Х[12], подряд в массив Y =. Определить минимальный элемент массива X. | полин@ | Общие вопросы C/C++ | 0 | 03.10.2016 14:37 |
Вычислить минимальный элемент массива(вернусь ссылку на него ), заменить этой суммой минимальный элемент | mari_ly | Общие вопросы C/C++ | 1 | 30.03.2016 16:31 |
'ПАСКАЛЬ'Удалить столбец, в котором находится минимальный элемент. | Ver kat | Помощь студентам | 8 | 28.09.2012 06:56 |
Минимальный элемент массива | Артемкка | Помощь студентам | 3 | 19.12.2011 01:18 |