Другие языки программирования и технологии

посмотрите мою программу на с++.Помогите разобраться

Нужно сформировать динамический одномерный массив, заполнить его случайными числами
и вывести на печать, затем удалить все нечетные элементы. Программу написал, но вот как удаление выполнить не знаю, помогите пжлста. Вот код http://pastebin.com/Xs0Pre9w
#include <iostream>
#include <ctime>
using namespace std;
int main() {
int * a, * t, size, new_size, next = 0;
srand(unsigned(time(NULL)));
size = rand() % 10 + 10;
new_size = size;
a = new int [size];
t = new int [size];
for (int n = 0; n < size; n++) a[n] = rand() % 90 + 10;
for (int n = 0; n < size; n++) cout << a[n] << ' ';
for (int n = 0; n < size; n++) {
if (a[n] & 1) {
--new_size;
continue;
}
else t[next++] = a[n];
}
if (new_size < size) delete[] a;
a = new int [new_size];
for (int n = 0; n < new_size; n++) a[n] = t[n];
delete[] t;
size = new_size;
cout << endl;
for (int n = 0; n < size; n++) cout << a[n] << ' ';
delete[] a;
cin.get();
return 0;
}
Нурбол Курманбаев
Нурбол Курманбаев
68 067
Лучший ответ
Зубков Алексей спасибо за помощь) только вот компилятор ругается
1>c:\users\ильгиз\documents\visual studio 2010\projects\1\1\1.cpp(12): error C2440: =: невозможно преобразовать "int" в "int *"
1> Для преобразования из целого типа в указатель требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>c:\users\ильгиз\documents\visual studio 2010\projects\1\1\1.cpp(15): error C2296: &: недопустимо, левый операнд имеет тип "int *"
1>c:\users\ильгиз\documents\visual studio 2010\projects\1\1\1.cpp(19): error C2440: =: невозможно преобразовать "int *" в "int"
1> Не существует контекста, в котором такое преобразование возможно
Или:
- пересчитай четные эл-ты;
- создай новый массив;
- перенеси в него четные;
- удали старый;

или так:
int odd=0,even=n-1;//номера первого нечетного и последнего четного элемента
while(odd<even)//пока> odd)&&(a[ even]%2==1))even--;//even - номер последнего четного
if(odd < even)//если справа от odd есть четные
a[ odd]=a[ even--];//сохраняем четный и "забываем" его
}
все, у нас odd четных в начале массива.