You are on page 1of 1

#include <iostream>

using namespace std;

int* right_shift(int* data, int size, int index)


{
for (int i = index; i < size - 1; i++)
*(data + i) = *(data + i + 1);
return data;
}
int* shrink(int* data, int& size)
{
int* ptr = new int[size - 1];
for (int i = 0; i < size - 1; i++)
*(ptr + i) = *(data + i);
delete[] data;
data = nullptr;
size--;
return ptr;
}
void delete_even(int* data, int& size)
{
for (int i = 0; i < size; i++)
{
if (*(data + i) % 2 == 0)
{
data = right_shift(data, size, i);
data = shrink(data, size);
i--;
}
}
}
int main()
{
int n = 0;
cout << "Enter the size of array" << endl;
cin >> n;

int* ptr = new int[n];

for (int i = 0; i < n; i++)


{

cin >> *(ptr + i);


}
delete_even(ptr, n);
cout << endl;
for (int i = 0; i < n; i++)
{
cout << *(ptr + i) << " ";
}
cout << endl << "array size after shrink is: " << n<<endl;
delete[] ptr;
ptr = nullptr;
return 0;
}

You might also like