Страницы

Поиск по вопросам

пятница, 5 апреля 2019 г.

Найти все элементы массива, между двумя заданными значениями

Код я не буду сбрасывать, так как его нет, есть только та часть, которая не поможет понять саму суть программы, но попробую объяснить на примере.
Допустим, у меня есть последовательность точек {112, 1, 30, 69, 3, 29, 74, 23, 12} и моей начальной точкой является 30, в то время как конечной является точка 23. Что мне нужно сделать, чтобы я рассматривал лишь точки {30, 69, 3, 29, 74, 23} и вывел на экран, что именно эти точки находятся между начальной и конечной точками.
Код внизу, это как мысль, которая была у меня, но я не могу докончить, так как если я начинаю с 30, как дальше сделать так, чтобы она взяла именно 69. Дистанцию не могу использовать, так как дистанция между 1 и 30 меньше чем дистанция между 30 и 69. Но я верю, что есть какая-то логика или как-то это возможно построить. Возможно моя начальная логика построена неправильно, я буду рад изменениям.
while(current!=end) { for(points= theVectorOfPoint.begin();points!=theVectorOfPointe.end();points++) {
} }


Ответ

Вот мой вариант.
/* Отвечает за номер точки */ current = 0;
/* Note: Для 30 можно отдельную переменную завести и для 23 */ /* В цикле находим номер точки, равной 30 */ while (points[current] != 30) { current++; }
/* И выводим все точки с 30 по 23, найдя которую выходим из цикла */ while (current < end) { cout << points[current] << " ";
if (points[current] == 23) { break; }
current++; }

Комментариев нет:

Отправить комментарий