![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
rudolfninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: 1 Всего: 6 |
Что-то тут не так. Допустим, у нас массив 10, 20, 30, 40. Как видно массив состоит из 4 элементов. Мы хотим найти индекс элемента со значением 30. Как думаете, что будет в случае array[30]? Будет совсем не то, что вы планируете. |
|||
|
||||
vovamakr |
|
|||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 2.11.2015 Репутация: нет Всего: нет |
rudolfninja, А как написать? Я только учу и не знаю как правильно(
будет array[30] а у нас arra[4] Это сообщение отредактировал(а) vovamakr - 3.11.2015, 13:15 |
|||
|
||||
rudolfninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: 1 Всего: 6 |
Смотрите, зачем в эту функцию, по-вашему, передается размер массива? - Не только для того, чтоб вернуть его в случае, когда в массиве нет искомого элемента, но и для того, чтобы знать, когда заканчивать цикл обработки массива. |
|||
|
||||
vovamakr |
|
|||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 2.11.2015 Репутация: нет Всего: нет |
rudolfninja, )) посмотрите мои посты ранее. но мне нужно чтобы не доходил цикл до конца а до индекса значения value
|
|||
|
||||
rudolfninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: 1 Всего: 6 |
||||
|
||||
vovamakr |
|
|||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 2.11.2015 Репутация: нет Всего: нет |
||||
|
||||
rudolfninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: 1 Всего: 6 |
Что то я не могу придумать как в данном случае использовать то, что массив отсортирован. Единственный вариант, который приходит на ум, это то, что написал federov, то есть использование бинарного поиска.
Даже если массив отсортирован, то мы, не зная его размер, можем с легкостью выйти за пределы массива. |
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Было же так:
А вообще, можно же прекратить ползать по массиву, если искомое значение стало меньше значения в массиве:
Это сообщение отредактировал(а) feodorv - 3.11.2015, 13:42 -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
rudolfninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: 1 Всего: 6 |
Но если искомого значения нет в массиве и оно больше максимального элемнта (например, в массиве 1 2 3 4 5 ищем 10), то цикл будет бесконечный. Я это к тому, что не зная размер массива никак не получится сделать требуемое задание. Это сообщение отредактировал(а) rudolfninja - 3.11.2015, 13:49 |
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Почему? -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
rudolfninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: 1 Всего: 6 |
feodorv, совершенно верно! =) Я исправлся в прошлом сообщении. Имел в виду, что не используя размер массива может произойти такая ситуация.
vovamakr, я предлагаю вам использовать вариант, который предложил feodorv. По-моему, он наиболее подходящий в вашем случае. Это сообщение отредактировал(а) rudolfninja - 3.11.2015, 13:53 |
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Нет, нет, без размера никак))) -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 12 Всего: 72 |
||||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Можно))) Но возвращать-то в случае быстрого выхода из цикла по условию value < array[index] всё равно размер массива, что заставляет нас продолжать просматривать массив до конца, что делает применение этого условия бесполезным (да и отсортированность массива тоже)))) -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
vovamakr |
|
|||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 2.11.2015 Репутация: нет Всего: нет |
||||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |