как сделать переиндексацию массива?

 

Добрый день ! ни как не могу сообразить как сделать так то бы по определенному условию происходила перииндексация массива, предыдущее значение должно принять текущее, я сделал вот так поместил в цикл вот это выражение  m[i-1]=m[i], но есть одно "но" он все элементы массива до нулевого заполняет значение текущего(i) , а мне нужен сдвиг , вот так

m[3]=m[i]

m[2]=m[3]

m[1]=m[2]

m[0]=m[1]

 так что бы значения не перезаписывались получается на текущие , а сдвигались просто 

 
Наверно цикл не в ту сторону крутите. Еще стоит попробовать использовать ArrayCopy(), будет быстрей работать. 
 

да нет все кручу в ту

   while(i!=0)

        {

         mt[i-1]=mt[i];

          i--;


        }

просто все значения записываются текущем а мне нужно что бы они записывались предыдущем, вот я и не могу понять как это сделать

 
Точно не в ту сторону
 

с  чего вы взяли что не в ту, если i=3(к примеру)  то будет предыдущему присваиваться значение текущего

 m[2]=m[3]

m[1]=m[2]

m[0]=m[1] 

 

попробую объяснить наглядней если значения элементов массива к примеру вот такие  m[0]=10, m[1]=20, m[2]=30, m[3]=40

если как сейчас у меня то при индексации получается следующие

m[0]=40

m[1]=40

m[2]=40

m[3]=40

 а мне надо что бы был сдвиг

m[0]=20

m[1]=30

m[2]=40


 

Сделайте так:

ArrayCopy(m,m,0,1); 

 

пробовал не копирует одинаковые массивы

 

извините первый раз напортачил что то

сейчас заработало, но последнему значению присваивает ноль это меня не устроит 

 
SAVA:

извините первый раз напортачил что то

сейчас заработало, но последнему значению присваивает ноль это меня не устроит 

 

Так присвойте ему то, что надо.
 

Или так: 

ArrayCopy(m,m,0,1,ArraySize(m)-1); 

Причина обращения: