#include <iostream>
int removeodd(int arr[], int arrsize)
{
int di = 0; // di == destination index
for (int si = 0; si < arrsize; ++si) // si == source index
if (arr[si] % 2 == 0) // even number => copy it
arr[di++] = arr[si]; // assign arr[si] to arr[di], then increment di
return di; // "size" of new array
}
int main()
{
int size = 8;
int ary[8] = { 1,2,3,6,7,9,5,8 };
int newsize = removeodd(ary, size);
for (int i = 0; i < newsize; ++i)
std::cout << ary[i] << ' ';
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKaW50IHJlbW92ZW9kZChpbnQgYXJyW10sIGludCBhcnJzaXplKQp7CiAgaW50IGRpID0gMDsgLy8gZGkgPT0gZGVzdGluYXRpb24gaW5kZXgKICBmb3IgKGludCBzaSA9IDA7IHNpIDwgYXJyc2l6ZTsgKytzaSkgLy8gc2kgPT0gc291cmNlIGluZGV4CiAgICBpZiAoYXJyW3NpXSAlIDIgPT0gMCkgLy8gZXZlbiBudW1iZXIgPT4gY29weSBpdAogICAgICBhcnJbZGkrK10gPSBhcnJbc2ldOyAvLyBhc3NpZ24gYXJyW3NpXSB0byBhcnJbZGldLCB0aGVuIGluY3JlbWVudCBkaQogIHJldHVybiBkaTsgLy8gInNpemUiIG9mIG5ldyBhcnJheQp9CgppbnQgbWFpbigpCnsKICBpbnQgc2l6ZSA9IDg7CiAgaW50IGFyeVs4XSA9IHsgMSwyLDMsNiw3LDksNSw4IH07CgogIGludCBuZXdzaXplID0gcmVtb3Zlb2RkKGFyeSwgc2l6ZSk7CiAgZm9yIChpbnQgaSA9IDA7IGkgPCBuZXdzaXplOyArK2kpCiAgICBzdGQ6OmNvdXQgPDwgYXJ5W2ldIDw8ICcgJzsKCiAgcmV0dXJuIDA7Cn0=