Удалить из массива первый нулевой элемент
Есть, задание по работе с массивом, которое заключается в следующем: Задан массив целых чисел X(n). Найти количество чётных элементов в массиве; среднее геометрическое положительных элементов массива, расположенных в его первой половине. Все отрицательные элементы заданного массива заменить значением его максимального элемента. Удалить из массива первый нулевой элемент.
Возникла проблема с удалением первого нулевого элемента массива.Удаление нужно выполнить с последующим сдвигом.
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int *X,i,N,a,max;
float sg,b,c;
c=1;
cout << "N = "; cin >> N;
X=new int[N];
for(i=0; i<N; i++)
{
cout<<"X[" << i << "]= ";
cin >>X[i];
}
for(i=0; i<N; i++)
{
if(X[i]%2==0)
{
a++;
}
if(X[i]>max)
{
max=X[i];
}
}
for(i=0; i<(N/2); i++)
{
if(X[i]>0)
b++;
c*=X[i];
}
for(i=0; i<N; i++)
{
if(X[i]<0)
X[i]=max;
}
sg = exp((1/b)*log(c));
cout << "Колличество четных элементов массива: " << a << endl;
cout << "Cреднее геометрическое положительных элементов массива: " << sg;
for(i=0;i<N; i++)
{
cout<<"X[" << i << "]= " << X[i];
}
delete [] X;
}
Источник: Stack Overflow на русском