intzad_elem;
cout <<"\nВведите количество элементов массива:";
cin >> n;
if (n<2)
{
cout <<"Ошибка! Количество элементов массива должно быть не менее двух.\n";
return 3;
}
int*a = new int [n];
enter(a,n);//функция ввода элементов массива
cout <<"\nВведите заданный элемент для сравнения: ";
cin >> zad_elem;
if (zad_elem==a[n-1])
{
cout <<"\nЗаданный элемент является последним в массиве ";
return 4;
}
if (poisk(a,n,zad_elem))//функция проверки наличия заданного элемента в массиве
{
del(a,n,zad_elem);//функция удаляющая после каждого элемента с заданным значением,1 элемент, если он отличен от заданного
print(a,n);//функция вывода элементов массива
}
elsecout<<"\nВ массиве нет заданного элемента ";
system("pause");
break;
delete[]a;
}
case(3):
{
cout <<"\nВы выбрали пункт № 3-Вставить элемент с заданным значением после элемента с заданным номером.";
int new_element, zad_nomer;
cout <<"\nВведите количество элементов массива:";cin >> n;
if (n<1)
{
cout <<"\n Массив пуст\n";
return 5;
}
int* a = new int[n+1];
enter(a,n);//функция ввода элементов массива
cout <<"\nВведите номер элемента после которого необходимо произвести вставку: ";
cin>>zad_nomer;
if (n<zad_nomer)// если заданный номер превышает размерность массива
{
cout<<"Ошибка! Массив не имеет элемента с заданным номером, так как количество элементов массива менее "<<zad_nomer;
return 6;
}
cout <<"\nВведите элемент для вставки:";
cin >> new_element;
paste(a,n,new_element,zad_nomer);//функция вставляющая элемент с заданным значением после элемента с заданным номером
print(a,n);//функция вывода элементов массива
system("pause");
break;
delete[]a;
}
case(4):
{
cout <<"\nВы выбрали пункт №4-Проверить есть ли в массиве два подряд идущих положительных элемента.";
cout <<"\nВведите количество элементов массива: ";
cin>>n;
if (n<2)
{
cout <<"\nКоличество элементов массива менее двух.";
return 7;
}
int*a = new int [n];
enter(a,n);//функция ввода элементов массива
if (proverka(a,n))//функция проверяющая есть ли в массиве два подряд идущих положительных элемента
cout<<"\nДа, Массив содержит два подряд идущих положительных элемента. \n";
else
cout<<"\nДва подряд идущих положительных элементов не найдено.\n";
system("pause");
break;
delete[]a;
}
case(0):break;
default: {break;}
};
}
while(choice!=0);
return 0;
}
voidenter(int *a, intn) // функция ввода массива, a – массив, n – длина массива
{
for (int i=0;i<n;i++)
{
cout<<"\n Введи "<<i+1<< " элемент= ";
cin>>a[i]; }
}
intmax(int *a, intn) // функция поиска номера максимального элемента
{
int numbermax=0, max=a[0];
for (int j=1; j<n;j++)
if (a[j]>max)
{
max=a[j];
numbermax=j;
}
return numbermax;
}
void print(int *a, int n) // функция вывода элементов массива
{
cout<<("\n Массив:");
for (int i=0;i<n;i++)
cout<<" "<<a[i];
cout<<endl;
}
boolproverkapologit(int*a, intn)//функция проверяющая есть ли в массиве два подряд идущих положительных элемента
{
for(int i=0;i<n-1;i++)
if ((a[i]>0)&&(a[i+1]>0))
return true;
return false;
}
voidpaste(int*a, int&n, intnew_element, intzad_nomer)//функция вставляющая элемент с заданным значением после элемента с заданным номером
{
Int m=n+1;
Int *b=new int[m];
for (int i=0; i<=zad_nomer; i++)
b[i]=a[i];
b[zad_nomer+1]=new_element;
for (int i=zad_nomer+2; i<m; i++)
b[i]=a[i-1]
delete [] a;
a=b;
}
boolpoisk(int*a, intn,intzad_elem)//функция проверяющая наличие заданного элемента в массиве
{
for( int i=0;i<n;i++)
if(a[i]==zad_elem)
returntrue;
returnfalse;
}
voiddel(int*a,int &n,intzad_elem)//функция удаляющая после каждого элемента с заданным значением, 1 элемент, если он отличен от заданного
{
for (int i=0; i<n; i++)
if (a[i]==zad_elem)
if (a[i+1]!=zad_elem)
{
for (i=i+1; i<n-1; i++)
a[i]=a[i+1];
n=n-1;
}
}
intkol_vo(int*a,intmaxim,intn)//функция вычисления количества элементов расположенных между центральным и максимальным элементами
{
int x;
x=(n/2)-maxim;
intkol=(abs(x)-1);
cout <<"Количество элементов массива расположенных между максимальными центральным элементами = " << kol << "\n";
if (kol==0)
cout<<"Между центральными максимальным элементами нет элементов";
returnkol;
}
boolneskolko(int*a,intn)//функция проверяющая есть ли несколько максимальных элементов
{
Int d= max(a,n);
for (int i=0; i<n; i++)
if (d!=I && d ==a[i])
return true;
returnfalse;
}
ЛИТЕРАТУРА:
1)C/C++. Архив программ. Код с комментариями Автор: Арт Фридман, Ларс Кландер, Марк Михаэлис, Херб Шильдт Издательство: Бином, 2001 г.
2)C++. Учебный курс Автор: П. Франка Издательство: Питер, 2003 г.
3)Как программировать на C++ Автор:Дейтел Х., Дейтел П