Никак, только переприсвоить этому элементу значение следующего, слудующему значение следующего за ним и т.д. до конца массива, при этом размер массива и выделенной для него памяти не изменяется и вы сами должны следить за текущей длинной массива:
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| #include <ctime>
#include <cstdlib>
#include <numeric>
#include <iostream>
#include <algorithm>
#include <functional>
using namespace std;
int main() {
srand(time(0));
int *a = new int[10], n = 10;
cout << "массив:";
for (int i = 0; i < n; ++i) {
a[i] = rand() % 100;
cout << ' ' << a[i];
}
double avg = accumulate(a, a + n, 0.0) / n;
cout << "\nсреднее арифметическое: " << avg << endl;
n = remove_if(a, a + 10, bind2nd(less<double>(), avg)) - a;
cout << "результат:";
for (int i = 0; i < n; ++i) cout << ' ' << a[i];
delete[] a;
} |
|
Если вам нужно именно удалять, то можете воспользоваться std::list или реализовать свой класс для списков.