Информатика, вопрос задал anastasiyafomina353 , 1 год назад

C++

С использованием контейнера, операторів array
У одномірному масиві, який складається з n цілих елементів, обчислити: а) добуток елементів масиву, розташованих між першим та останнім нульовими елементами;​

Ответы на вопрос

Ответил Mirox921
0

Код на 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. Сначала ищутся индексы первого и последнего нулевых элементов с помощью двух циклов. Если нулевые элементы не найдены, выводится сообщение об этом. Если найдены, то вычисляется произведение элементов между этими индексами. Результат выводится на экран.

Новые вопросы