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

Удалить все элементы с нечетными индексами. нужно написать прогу на С++

#include <iostream>
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;
    }
}
МС
Мирлан Сарыбаев
58 960
Лучший ответ
пишите в почту, сделаю