Другой важной задачей, связанной с массивами, является подсчет элементов с нужным свойством. Например, сколько сотрудников имеют зарплату более 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";