#include
using namespace std;
void removal_on_odd_indexes(int *, size_t &, unsigned n = 0);
void create(int *, const size_t, unsigned n = 0);
void show(int *, const size_t, unsigned n = 0);
int main() {
size_t size_1 = 5, size_2 = 6;
int * test_1 = new int [size_1];
create(test_1, size_1);
show(test_1, size_1);
cout << endl;
removal_on_odd_indexes(test_1, size_1);
show(test_1, size_1);
cout << endl;
int * test_2 = new int [size_2];
create(test_2, size_2);
show(test_2, size_2);
cout << endl;
removal_on_odd_indexes(test_2, size_2);
show(test_2, size_2);
delete[] test_1; test_1 = NULL;
delete[] test_2; test_2 = NULL;
cin.get();
return 0;
}
void create(int * _v, const size_t _s, unsigned n) { while (n < _s) _v[n++] = n; }
void show(int * _v, const size_t _s, unsigned n) { while (n < _s) cout << ' ' << _v[n++]; }
void removal_on_odd_indexes(int * _v, size_t & _s, unsigned n) {
if (_v && _s > 1) {
size_t new_size = _s;
unsigned m = n, k;
while (m < _s) if (m++ & 1) --new_size;
int * temp = new int [_s];
k = m = n;
while (m < _s) temp[m++] = _v[k++];
delete[] _v; _v = NULL;
_v = new int [new_size];
k = m = n;
do if (~m & 1) _v[k++] = temp[m]; while (++m < _s);
_s = new_size;
delete[] temp; temp = NULL;
}
}
пишите в почту, сделаю