Is in range 5 elements

Int main ()

{

int array [ N ];// объявление массива из 10 элементов целого типа

for (int j = 0; j < N; j++) // цикл ввода элементов массива

{

       cout << "Enter array [" << j << "] -> ";

       cin >> array [ j ];

}

cout << "\n\nThe entered array\n"; // вывод подсказки

for (int j = 0; j < N; j++) // цикл вывода элементов массива

       cout << array [ j ] << '\t';

cout << endl;

return 0;

}

 

 

Рис 9.1 схема листинга 9.2

 

 

Пример демонстрирует ввод и вывод 10 элементов целочисленного массив Размер массива задан глобальной константой целого типа

const int N = 10.

В начале программы объявляется массив целых чисел array, состоящий из 10 элементов (индекс элементов массива может изменяться от 0 до 9).

Для ввода всех элементов массива организован цикл, который позволяет ввести каждый элемент, изменяя индекс. В качестве индекса массива в операторе for используется переменная j, которая инициализируется нулевым значением, так как первый элемент имеет индекс 0. Цикл начинается с проверки условия j < N и заканчивается, когда переменная j принимает значение, равное N. Внутри цикла сначала выводится подсказка с указанием значения индекса вводимого элемента, а затем вводится сам элемент cin» array [ j ]. Последний оператор j++ цикла for увеличивает значение индекса j на 1.

После завершения цикла выводится сообщение, и в новом цикле for выводятся значения, которые элементы массива получили при вводе. Для отделения элементов массива друг от друга при выводе используется модификатор \t.

На рис. 9.2 показан результат работы программы из листинга 9.2.

 

Рис. 9.2 Результат ввода/вывода массива из листинга 9.2.

< Примечание >

При выводе элементов массива для отделения одного элемента от другого необходимо использовать какой-либо разделитель (например,’ /t’), иначе все значения соединятся в одну сплошную линию, и невозможно будет определить, где начинается и где заканчивается каждое значение.

 

Значения элементам массива можно непосредственно задать внутри любой: функции программы. Для инициализации массива вместе с его объявлением достаточно указать тип, идентификатор, после которого в квадратных скобках записать количество элементов массива, и, воспользовавшись оператором присваивания, в фигурных скобках перечислить значения элементов через запятую (листинг 9.3).

 

Листинг 9.3. Пример инициализации одномерного массива простого типа

int m [ 3 ] = { 1, 10, 100 };

unsigned short x [ 5 ] = { 3, 5 };

double y [ ] = { 1.5, 7.38, -8.9, 0.0, 10.5 };

char c [ 4 ] = { 'a', 'b', 'c', '\0' };

 

< Примечание >

В конце операторе объявления, совмещенного с инициализацией, после закрывающей фигурной скобки обязательно должна стоять точка с запятой.

 

 

В примере массив m состоит из трех целых чисел со значениями 1,10 и 100.

Количествo значений в списке может быть меньше объявленного. В этом случае все недостающие элементы инициализируются нулевым значением.

Например, в массиве коротких целых чисел без знака с идентификатором х будет пять элементов со значениями 3,5,0,0,0.

Количество элементов инициализируемого массива может вообще не указываться. В примере это соответствует массиву у, который содержит 5 чисел с плавающей точкой с указанными в списке значениями. Размер массива вычисляется компилятором автоматически.

В последней строке листинга 9.3 инициализируется символьный массив последним элементом которого является символ завершения строки \0, которым в C++ заканчиваются все строки.

 

< Примечание >

Пустые квадратные скобки недопустимы при обычном объявлении массива без его инициализации.

Листинг 9.4. Пример поиска минимального элемента в одномерном массиве простого типа

 

#include <iostream>

using namespace std;

Int main ()

{

// объявление и инициализация массива array

int array [ ] = { 5, -10, 123, -7, 25, -3, -77, 1, 7, 3 };

// вычисление size — количества элементов в массиве

int size = sizeof (array) / sizeof (array [ 0 ]);

// предположение, что минимальный элемент имеет индекс 0

int jMin = 0;

// цикл проверки элементов массива

for (int j = 1; j < size; j++)

     if (array [ j ] < array [ jMin ]) 

           jMin = j;

// вывод массива

cout << "Elements of array\n";

for (int j = 0; j < size; j++)

     cout << array [ j ] << '\t';

// вывод минимального значения array [ jMin ]

cout << "\nMinimum = " << array [ jMin ] << endl;

return 0;

}

 

В программе происходит поиск не самого значения минимума, а его индекса (листинг 9.4). До начала цикла for делается предположение, что наименьшее значение имеет самый первый элемент в массиве, поэтому индекс jMin получает значение 0. Цикл проверки элементов управляет изменением индекса j, увеличивая его на 1 в конце каждой итерации. В теле цикла сравниваются значения текущего элемента с индексом j и элемента с индексом jMin. Если текущий элемент меньше, то с помощью выражения jMin=j корректируется индекс минимального элемента массива. В противном случае корректировка не производится. После завершения цикла в переменной jMin будет находиться индекс наименьшего элемента массива. В конце программы сначала выводится массив, а затем найденное значение array [ jMin ], где записан минимальный элемент.

 

 

Рис. 9.3 Схема листинга 9.4

 

Рис. 9.4 Результат работы программы из листинга 9.4

Листинг 9.5. Пример вычисления количества элементов из заданного диапазона

 

#include <iostream>

using namespace std;

Int main ()

{

// объявление и инициализация массива array

double array [ ] = {1.1, -5.25, 1.2, -2., -3.4, 2.5, 2.75 };

// объявление и инициализация верхней t и нижней b границ диапазона

double t=-3.5, b=2.5;

// вычисление size — количества элементов в массиве

int size = sizeof (array) / sizeof (double);

//объявление числа входящих в диапазон элементов n и индекса i

int n, i;

// цикл вычисления количества входящих в диапазон элементов

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

if (array [ i ] >= t && array [ i ] <= b)

         ++n;

// вывод результатов вычислений

cout << "Is in range" << n << "elements\n";

cout << "No in range" << (size – n) << "elements\n";

return 0;

}

Схема листинга представлена на рис. 9.5

В начале программы вычисляется размер массива size при помощи oператоpa sizeof (листинг 9.5). Для вычисления количества элементов, входящих в заданный диапазон, переменная n перед началом цикла получает значение 0. Каждая итерация цикла проверяет вхождение очередного элемента массива array [ i ] в диапазон (t,b). Если выражение в операторе if оказывается истинным, происходит увеличение n на 1. Итерации заканчиваются, когда индекс i достигает значения size. Программа выводит не только значение переменной n, но и количество элементов, которые не попадают в заданный диапазон. Результатом работа программы будут следующие две строки:

Is in range 5 elements


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: