Нахождение максимального элемента в массиве

 

# include <iostream.h>

const int n=10; //определяем константой кол-во элементов

void main()

{

int a[n];

int i, max;

//Ввод массива с клавиатуры

cout<<”enter array a”<<endl;

for (i=0; i<n; i++)

{

cout<<”a[“<<i<<”]=”;

cin>>a[i];

}

//Вывод массива на экран

cout<<”array a”<<endl;

for (i=0; i<n; i++)

{

cout<<a[i]<<’ ‘;

cout<<endl;

}

max=a[0]; //присваиваем максимуму первый элемент, а затем в цикле сравниваем с каждым элементом в цикле

for (i=1; i<n; i++)

if ( max < a[i]) max=a[i] ;

cout<<”max=”<<max<<endl;

}

 

Примечание

Общая структура решения задач с массивами(сумма, максимальный элемент, упорядочивание массива, сдвиг массива):

Описание переменных

Ввод данных

Соответствующие вычисления

Вывод результата

 

Задача 2

Циклический сдвиг массива влево на одну позицию

 

Пример

На входе: 5 3 4 2

На выходе: 3 4 2 5

 

# include <iostream.h>

const int n=10;

void main()

{

int a[n];

int i, r;

//Ввод массива с клавиатуры

cout<<”enter array a:”<<endl;

for (i=0; i<n; i++)

{

cout<<”a[“<<i<<”]=”;

cin>>a[i];

}

r=a[0];

for (i=1; i<n; i++)

a[i-1]=a[i];

a[n-1]=r;

//Вывод массива на экран

cout<<”array a”<<endl;

for (i=0; i<n; i++)

{

cout<<a[i]<<’ ‘;

cout<<endl;

}

}

 

Задача 3

Подсчитать количество максимумов в массиве

 

# include <iostream.h>

void main()

const int n=10;

{

int a[n];

int i, number, max;

 

//Ввод массива с клавиатуры

cout<<”enter array a”<<endl;

for (i=0; i<n; i++)

{

cout<<”a[“<<i<<”]=”;

cin>>a[i];

}

max=a[0];

number=1;

for (i=1; i<n; i++)

if (max< a[i])

{

max=a[i];

number=1;

}

else

if (max==a[i]) number++;

cout<<”max=”<<max<<endl;

cout<<”number=”<<number<<endl;

}

 

 

Задача 4

Подсчитать сумму элементов массива

 

# include <iostream.h>

void main()

const int n=10;

{

int a[n];

int i, sum;

//Ввод массива с клавиатуры

cout<<”enter array a”<<endl;

for (i=0; i<n; i++)

{

cout<<”a[“<<i<<”]=”;

cin>>a[i];

}

sum=0;

for (i=0; i<n; i++)

sum=sum+a[i]; //возможный вариант y+=a[i];

cout<<”sum=”<<sum<<endl;

}

 

Задача 5

Стратегия вычисления A- и E- кванторов

( проверка существования элемента в массиве)

При вычислении E- квантора булевская переменная задается как false.

 

При вычислении A- квантора булевская переменная

задается как true.

 

1) t=(Ei)[ a[i]<0 ]

t= true, если в массиве существует отрицательный

элемент, в противном случае t=false.

 

# include <iostream.h>

const int n=10;

void main()

{

int a[n];

int i;

bool f=false;

//Ввод массива с клавиатуры

cout<<”enter array a”<<endl;

for (i=0; i<n; i++)

{

cout<<”a[“<<i<<”]=”;

cin>>a[i];

}

//Вывод массива на экран

cout<<”array a”<<endl;

for (i=0; i<n; i++)

{

cout<<a[i]<<’ ‘;

cout<<endl;

}

for (i=0; i<n&&!t; i++)

if (a[i]<0) t=true;

if (t) cout<<”exist”<<endl;

else cout<<”not exist”<<endl;

}

 

 

2) t = (Ai)[ a[i]>=0 ]

 

T-true, если в массиве все элементы больше

Или равны нулю

# include <iostream.h>

void main()

const int n=10;

{

int a[n];

int i;

bool p=true;

//Ввод массива с клавиатуры

cout<<”enter array a”<<endl;

for (i=0; i<n; i++)

{

cout<<”a[“<<i<<”]=”;

cin>>a[i];

}

//Вывод массива на экран

cout<<”array a”<<endl;

for (i=0; i<n; i++)

cout<<a[i]<<’ ‘;

cout<<endl;

 

for (i=0; i<n&&p; i++)

if(a[i]<0) p = false;

if (p) cout<<”any”<<endl;

else cout<<” not any”<<endl;

}

 

Лекция №7

Массивы(продолжение)

Методы сортировки массивов.

 

Алгоритм сортировки методом нахождения локальных экстремумов

Алгоритм сортировки методом обмена пар

Алгоритм сортировки вставкой

Задача 1

Упорядочить массив по неубыванию.

Алгоритм сортировки методом нахождения локальных экстремумов

 

Необходимо отсортировать массив удовлетворяющий

условию (Ai)[ a[i]<=a[i+1] ].

( для любого i справедливо а[i]<=a[i+1] )

 

В цикле проверяем условие,

если a[i] >a[i+1] , то a[i] и a[i+1 ]меняем местами

 

# include <iostream.h>

const int n=10;

void main()

{

int a[n];

int i, j,r;

//Ввод массива с клавиатуры

cout<<”enter array a”<<endl;

for (i=0; i<n; i++)

{

cout<<”a[“<<i<<”]=”;

cin>>a[i];

}

//Вывод массива на экран

cout<<”array a”<<endl;

for (i=0; i<n; i++)

cout<<a[i]<<’ ‘;

cout<<endl;

 

for(i=0; i<n-1; i++)

for (j=i+1; j<n; j++)

if (a[i]>a[j])

{

r=a[i]; a[i]=a[j]; a[i]=r;

}

//Вывод массива на экран

cout<<”array a”<<endl;

for (i=0; i<n; i++)

cout<<a[i]<<’ ‘;

cout<<endl;

}

 

Задача 2.