Помогите разобраться с программой
Из массива X(N) все положительные элементы записать в массив Y(K), а все отрицательные элементы - в массив Z(m).Найти в каждом массиве максимальный по модулю элемент.Удалить в каждом массиве первый элемент. В программе написать функцию формирования массивов Y и Z, определения максимального по модулю элемента,удаление элемента.Мой друг написал ее,а комментарии нет.Помогите разобраться.С++
Из массива X(N) все положительные элементы записать в массив Y(K), а все отрицательные элементы - в массив Z(m).Найти в каждом массиве максимальный по модулю элемент.Удалить в каждом массиве первый элемент. В программе написать функцию формирования массивов Y и Z, определения максимального по модулю элемента,удаление элемента.Мой друг написал ее,а комментарии нет.Помогите разобраться.С++
Код:
#include <iostream>
#include <iomanip>
using namespace std;
int maximum(int *arr, int size)
{
int max;
max = arr[0];
for(int i=0; i<size; i++)
{
if(arr[i]>max)
{
max = arr[i];
}
}
return max;
}
void deleted(int *arr,int size)
{
int i;
for(i=0;i<size-1;i++)
{
arr[i]=arr[i+1];
}
--size;
cout<<"New";
for(i=0;i<size;i++)
cout<<setw(2)<<arr[i];
cout<<endl;
}
void run(const int *begin, const int *end, int *pos, int *neg, int **p_pos, int **p_neg)
{
*p_pos = pos;
*p_neg = neg;
for(const int* p = begin; p != end; ++p)
{
if(*p > 0) **p_pos = *p, ++(*p_pos);
else if(*p < 0) **p_neg = *p, ++(*p_neg);
}
}
int main()
{
const int n = 5;
int t=0,u=0;
int arr[n];
for(int i=0;i<n;i++)
{cout<<"Array=";
cin>>arr[i];}
int pos[n];
int neg[n];
int *p_pos, *p_neg;
run(arr, arr + n, pos, neg, &p_pos, &p_neg);
cout<< "positives: "<<endl;
for(int i=0;i<n;i++)
if(pos[i]>0) t++;
for(int i=0;i<n;i++)
if(pos[i]<0) u++;
for(const int* p = pos; p != p_pos; ++p)
cout<<*p<<"\t";
cout<<"MaxElement= "<<maximum(pos,n);
cout<<endl;
cout<<"New Massiv= ";deleted(pos,t);
cout<<endl;
cout << "negatives: "<<endl;
for(const int* p = neg; p != p_neg; ++p)
cout<<*p<<"\t";
cout<<"MaxElement= "<<maximum(neg,n);
cout<<endl;
cout<<"New Massiv= ";deleted(neg,u);
cout<<endl;
system ("pause");
return 0;
}