ОБСУЖДЕНИЕ

Нужна помощь

5 ответов 5,4 тыс.
Статус
Закрыто для дальнейших ответов.
Автор темы
Народ, подскажите пожалуйста как удалить из массива некоторые его члены.
Что то заклинило меня на этой задаче, никак не получается сделать.
Вот собственно сама задача:
Даны действительные числа a1,....,an (n<=150). Оставить без изменения последовательность , если она упоpядочена по неубыванию или по невозpастанию; в пpотивном случае удалить из последовательности те члены, поpядковые номеpа котоpых кpатны 4, сохpанив пpежним поpядок оставленных членов. (Замечание:удалить из существующего массива, а не создавать новый !).
 
<!--QuoteBegin-Guest_Maximus_*+19:12:2005, 19:19 -->
<span class="vbquote">(Guest_Maximus_* @ 19:12:2005, 19:19 )</span><!--QuoteEBegin-->Народ, подскажите пожалуйста как удалить из массива некоторые его члены.
Что то заклинило меня на этой задаче, никак не получается сделать.
Вот собственно сама задача:
Даны действительные числа a1,....,an (n<=150). Оставить без изменения последовательность , если она упоpядочена по неубыванию или по невозpастанию; в пpотивном случае удалить из последовательности те члены, поpядковые номеpа котоpых кpатны 4, сохpанив пpежним поpядок оставленных членов. (Замечание:удалить из существующего массива, а не создавать новый !).
[snapback]28549" rel="nofollow" target="_blank[/snapback]​
[/quote]
За WMZ сделаю быстро и качественно :unsure:
 
первый вариант---юзать stl::vector. там все уже реализовано
второй--сдвигаешь элементы которые справа от удаляемого на один индекс влево
 
to programmer:

За пару сторочек??? Совесть не замучает.

to KmeT:

Во-первых. Что за stl::vector. Я в программировании новичёк, так что прошу объяснить.

Во-вторых. То что необходимо сдвигать элементы влево я и сам догадался, только вот проблема реализовать это.
 
STL Standard Template Library любой маломальский современный компилятор С++ ее подеживает
vector-это койтенер с произвольным доступом. В общем читай доки. Но предпологается, что программист на С STL знает.

И, имхо, реализовать сдвиг элм. массива должен уметь даже новичек в программировании, потому как это необходимые основы алгоритмизации


for (int i=iDelElm; i<iItemInArr-1; i++) Arr=Arr[i+1];
Должно быть что-то похожее на это).
В серьезных задачах при необходмости оптимизации и больший обьемах массивов следует это делать, через функции работы с памятью.
 
Спасибо KmeT хоть за какую-то помощь, но задачу я и сам кое-как домучал.

Код:
for (j=0;j<=N/4;j++)
for (i=4*j-j;i<3+4*j-j;i++)
A[i]=A[i+j];

P.S. Реализовывать сдвиг элементов массива и я умею, просто меня подглючило :) на этой задаче.
 
Статус
Закрыто для дальнейших ответов.