Здравствуйте. Скажите пожалуйста, что изменить, чтобы всё работало. Программа компилируется, но я не понял всех нюансов здачи. вот сама задача:

При выполнении работы используются статические массивы. Для организации
статических массивов с псевдопеременными границами необходимо объявить массив достаточно
большой длины. Затем пользователь вводит реальную длину массива (не больше N) и работает с
массивом той длины, которую он сам указал. Остальные элементы (хотя память под них и будет
выделена) не рассматриваются. При уменьшении или увеличении длины массива необходимо
изменять его реальную длину.
Составьте блок-схему алгоритма

Сформировать одномерный массив целых чисел, используя датчик случайных чисел (диапазон
от 0 до 99) и выполнить задание 2-мя вариантами (c использованием индексов и указателей).
Размер массива ввести с клавиатуры.
Удалить элементы, индексы которых кратны 3. Добавить после каждого отрицательного
элемента массива элемент со значением | m[ i-1 ]+1|.


Не понял что сделать с этим m, что за него взять? я написал i

Пока это 1 способ, но второй отличаться не будет почти.

Код
#include "stdafx.h"
# include <iostream>
#include <stdlib.h>
#include <math.h>
#include <time.h>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
setlocale( LC_ALL,"Russian" );
    const int N = 1000;
// N - максимальный размер статического массива
int i; // индекс массива
int array_size; // переменная для хранения
//размера массива
int arr[N]; // целочисленный статический
//массив длины N
int rmin = 0, rmax = 99; //диапазон значений
//элементов массива
cout<<"Введите размер массива"<<endl;
cin >> array_size;
// Сгенерировать массив
srand((unsigned)time(NULL));
for(i = 0; i < array_size; i++)
{
arr[i] = (int)(((double)rand()/(double)RAND_MAX)*
(rmax-rmin)+rmin);
// или arr[i] = rand()%99;
cout<< "  " << arr[i];
}
{if (i/3==0)
cout <<" "<<endl;
}

{ if (i<0)
i*( i-1 )+1;
}
    return 0;
}