Подсчет количества элементов с нужным свойством

Вычисление суммы элементов массива

Сравнение и присваивание массивов

Массивы, в отличие от переменных, нельзя напрямую присвоить или сравнить. Это следует делать поэлементно, и для решения этой задачи лучше всего подходят циклы. Итак, для присвоения массива ages1 массиву ages2 следует использовать такую конструкцию:

for (int i=0; i<size; i++) {

ages2[i] = ages1[i];

}

Сравнение массивов нужно выполнять по аналогичной схеме:

bool equal = true;

for (int i=0; i<size; i++) {

if (ages1[i]!= ages2[i]) {

equal = false;

break;

}

}

if (equal) {

cout << "Массивы равны\n";

} else {

cout << "Массивы не равны\n";

}

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

Сам по себе массив вряд ли представляет практический интерес. Настоящая польза заключается в обработке их элементов определенным образом. Один из вариантов обработки – это вычисление суммы элементов массива. Для этого используется стандартный алгоритм, который заключается в том, что некоторая переменная инициализируется нулем, а затем в цикле к ней прибавляются элементы массива один за другим. На каждой итерации прибавляется очередной элемент, поэтому после завершения цикла данная переменная будет хранить сумму всех элементов. Следующий фрагмент кода реализует этот алгоритм:

int sum = 0;

for (int i=0; i<size; i++) {

sum += numbers[i];

}

cout << "Сумма равна " << sum;

Другой важной задачей, связанной с массивами, является подсчет элементов с нужным свойством. Например, сколько сотрудников имеют зарплату более 100000 рублей, или, скажем, сколько отличников учится в университете. Все эти задачи сводятся к подсчету элементов массива, имеющих определенное свойство.

Начнем с задачи подсчета всех элементов массива, т.е. с ответа на вопрос, сколько всего элементов в массиве. Вопрос, конечно, искусственный, поскольку это число нам известно, но представим, что это не так. В таком случае, подсчитать это число можно так: пробежаться по всему массиву и прибавлять к некоторой переменной единицу, проходя очередной элемент. Алгоритм аналогичен алгоритму вычисления суммы элементов:

int n_elem = 0;

int sum = 0;

for (int i=0; i<size; i++) {

n_elem++;

sum += numbers[i];

}

cout << "В массиве " << n_elem << " элементов\n";

cout << "Сумма равна " << sum << "\n";

Конечно, значение переменной n_elem должно совпадать со значением size, поскольку данная программа складывает size единиц. Усложним задачу: подсчитаем количество элементов, которые больше 100. Для этого нужно в нашей сумме заменить единицы, соответствующие элементам меньшим 100, на нули:

int n_elem = 0;

for (int i=0; i<size; i++) {

if (numbers[i]>=100) {

n_elem+=1;

} else {

n_elem+=0;

}

}

cout << "В массиве " << n_elem << " элементов\n";

Очевидно, что операция n_elem+=0 ничего не дает, поэтому окончательный вариант программы выглядит так:

int n_elem = 0;

for (int i=0; i<size; i++) {

if (numbers[i]>=100) {

n_elem+=1;

}

}

cout << "В массиве " << n_elem << " элементов\n";


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



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