C++
С использованием контейнера, операторів array
У одномірному масиві, який складається з n цілих елементів, обчислити: а) добуток елементів масиву, розташованих між першим та останнім нульовими елементами;
Ответы на вопрос
Код на C++ с использованием контейнера array:
#include <iostream>
#include <array>
const int n = 10; // размер массива
int main() {
std::array<int, n> arr = {1, 2, 3, 0, 4, 5, 6, 0, 7, 8}; // исходный массив
int first_zero = -1, last_zero = -1; // индексы первого и последнего нулевых элементов
int product = 1; // произведение элементов между первым и последним нулевыми элементами
// поиск первого нулевого элемента
for (int i = 0; i < n; i++) {
if (arr[i] == 0) {
first_zero = i;
break;
}
}
// поиск последнего нулевого элемента
for (int i = n - 1; i >= 0; i--) {
if (arr[i] == 0) {
last_zero = i;
break;
}
}
// вычисление произведения элементов между первым и последним нулевыми элементами
if (first_zero != -1 && last_zero != -1) {
for (int i = first_zero + 1; i < last_zero; i++) {
product *= arr[i];
}
} else {
std::cout << "Нет нулевых элементов в массиве" << std::endl;
return 0;
}
std::cout << "Произведение элементов между первым и последним нулевыми элементами: " << product << std::endl;
return 0;
}
В данном примере массив задается с помощью контейнера std::array размера n. Сначала ищутся индексы первого и последнего нулевых элементов с помощью двух циклов. Если нулевые элементы не найдены, выводится сообщение об этом. Если найдены, то вычисляется произведение элементов между этими индексами. Результат выводится на экран.