Консультация № 174814
03.12.2009, 05:46
0.00 руб.
0 1 1
В одномерном массиве, состоящем из n целых элементов, вычислить:
1. произведение элементов массива с четными номерами.
2. сумму элементов массива, расположенных между первым и последним нулевыми элементами.

Заранее благодарю =)

Обсуждение

давно
Академик
320937
2216
03.12.2009, 09:34
общий
это ответ
Здравствуйте, Andrey4ik. Ответ в приложении. CodeBlocks/GCC. Пример работы:
Код:
Введите размер массива не более 100 элементов: 7
введите элементы 1 0 1 2 3 0 1
Массив: 1;0;1;2;3;0;1;
Произведение элементов с четными номерами = 3
Сумма элементов между первым и последним нулями = 6


Приложение:
// • Вопрос № 174814
// В одномерном массиве, состоящем из n целых элементов, вычислить:
// 1. произведение элементов массива с четными номерами.
// 2. сумму элементов массива, расположенных между первым и последним нулевыми элементами.
#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
const int max_size = 100;
int product; // произведение элементов массива с четными номерами
int sum; // сумма элементов массива между первым и последним нулями
int left, right; // левый и правый номера ненулевых элементов
int n; // используемый размер массива
int v[max_size]; // массив

do
{
cout << "Введите размер массива не более " << max_size << " элементов:";
cin >> n;
}
while (n<1 || n>max_size);

cout << "Введите элементы " << endl;
for (int i=0; i<n; i++)
{
cin >> v[i];
}

// считаем 0 четным номером
product=1;
for (int i=0; i<n; i+=2)
{
product *=v[i];
}

// ищем левый 0
left=0;
while (left<n && v[left]!=0)
{
left++;
}

// ищем правый 0
right=n-1;
while( right>=0 && v[right]!=0)
{
right--;
}

sum=0;
for (int i=left; i<=right; i++)
{
sum+=v[i];

}

cout << "Массив: ";
for (int i=0;i<n;i++)
{
cout << v[i] << ";";
}
cout << endl;

cout << "Произведение элементов с четными номерами = " << product << endl;
cout << "Сумма элементов между первым и последним нулями = " << sum << endl;
system("Pause");
return 0;
}
Форма ответа