Автор работы: Пользователь скрыл имя, 22 Января 2011 в 15:04, курсовая работа
Определить количество элементов массива расположенных между максимальным и «центральным» элементами массива (предполагается, что число элементов – нечётное и максимальный элемент - единственный). Если по какой либо причине количество определить не удаётся, выдать об этом сообщение с указанием причины.
cin >> new_element;
paste(a,n,new_element,zad_
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;
}
void enter(int *a, int n) // функция ввода массива, a – массив, n – длина массива
{
for (int i=0;i<n;i++)
{
cout<<"\n Введи "<<i+1<< " элемент= ";
cin>>a[i]; }
}
int max(int *a, int n) // функция поиска номера максимального элемента
{
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;
}
bool proverka pologit(int*a, int n)//функция проверяющая есть ли в массиве два подряд идущих положительных элемента
{
for(int i=0;i<n-1;i++)
if ((a[i]>0)&&(a[i+1]>0))
return true;
return false;
}
void paste(int*a, int&n, int new_element, int zad_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;
}
bool poisk(int*a, int n ,int zad_elem)//функция проверяющая наличие заданного элемента в массиве
{
for( int i=0;i<n;i++)
if(a[i]==zad_elem)
return true;
return false;
}
void del(int*a ,int &n ,int zad_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;
}
}
int kol_vo(int*a ,int maxim ,int n)//функция вычисления количества элементов расположенных между центральным и максимальным элементами
{
int x;
x=(n/2)-maxim;
int kol=(abs(x)-1);
cout <<"Количество элементов массива расположенных между максимальными центральным элементами = " << kol << "\n";
if (kol==0)
cout<<"Между центральными максимальным элементами нет элементов";
return kol;
}
bool neskolko(int*a ,int n)//функция проверяющая есть ли несколько максимальных элементов
{
Int d= max(a,n);
for (int i=0; i<n; i++)
if (d!=I && d ==a[i])
return true;
return false;
}
ЛИТЕРАТУРА:
1)C/C++. Архив программ.
Код с комментариями Автор: Арт Фридман,
Ларс Кландер, Марк Михаэлис, Херб Шильдт
Издательство: Бином, 2001 г.
2)C++. Учебный курс
Автор: П. Франка Издательство: Питер, 2003
г.
3)Как программировать на C++ Автор:Дейтел Х., Дейтел П