Цитата Liisa:
Первый пункт я сделала, вот что получилось: »
|
В принципе с первым пунктом просто. Единственное, что в чётных элементах значение ноль, так что произведение будет всегда равно нулю. А со вторым я бы сделал так:
Код:
...
int IndexFirstNull, // Индекс первого нулевого значения
IndexLastNull; // Индекс последнего нулевого значения
...
// Вычисление первого значения с нулём
// Начинаем поиск его с начала
// И как только найдём, запоминаем break
for(int i = 0; i < size; i++)
if(FMass[i] == 0){
IndexFirstNull = i;
break;
}
// Вычисления последнего значения с нулём
// Начинаем поиск его с конца массива
// И как только найдём, запоминаем и break
for(int i = size - 1; i >= 0; i--)
if(FMass[i] == 0){
IndexLastNull = i;
break;
}
cout << endl;
// Вывод значений между первым и последним нулевым элементом.
for(int i = IndexFirstNull + 1; i < IndexLastNull; i++)
cout << "FMass[" << i << "] = " << FMass[i] <<endl;
В общем виде так получилось
Код:
#include <iostream>
using namespace std;
#include <conio.h>
int main(void)
{
int const size = 10; // Размер массива
float FMass[size] = {1, -2, 3, -5, 0, 2, 3, 8, 0, 1};
float proizv = 1;
int IndexFirstNull, IndexLastNull;
// Вывод массива
for(int i = 0; i < size; i++){ // print Fmass:
cout << "FMAss[" << i << "] = " << FMass[i] << endl;
}
// Вывод произведения чётных элементов массива
for(int i = 0; i < size; i++)
if(i % 2 == 0)
proizv *= FMass[i];
cout << "\nProizvedenie chetnih = " << proizv << endl;
// Вывод суммы элементов массива,
// расположенных между первым и последним нулевыми элементами.
// Вычисление первого значения с нулём
for(int i = 0; i < size; i++)
if(FMass[i] == 0){
IndexFirstNull = i;
break;
}
// Вычисления последнего значения с нулём
for(int i = size - 1; i >= 0; i--)
if(FMass[i] == 0){
IndexLastNull = i;
break;
}
cout << endl;
// Вывод значений между первым и последним нулевым элементом.
for(int i = IndexFirstNull + 1; i < IndexLastNull; i++)
cout << "FMass[" << i << "] = " << FMass[i] <<endl;
getch();
return 0;
}