Написать функцию, вычисляющую произведение элементов массива, расположенных между первым и вторым нулевым элементам
на языке с++
на языке с++
#include
#include
#include
using namespace std;
double mult(int *, const size_t);
bool check(int *, const size_t);
int main () {
locale::global(locale(""));
srand(unsigned(time(0)));
const size_t size = 36;
int arr[size];
for (size_t n = 0; n < size; n++) arr[n] = rand() % 10;
for (size_t n = 0; n < size; n++) cout << setw(2) << arr[n];
double result;
if (result = mult(arr, size)) cout << "\n Произведение равно: " << result << endl;
else cout << "\n А нету! \n";
cin.get(); cin.get();
return 0;
}
double mult(int * _array, const size_t _size) {
bool start = false, finish = true;
double m = 1;
if (check(_array, _size)) {
for (size_t n = 0; n < _size; n++) {
if (start && !_array[n]) break;
if (start) m *= _array[n];
if (finish && !_array[n]) start = true;
}
} else m = 0;
return m;
}
bool check(int * _array, const size_t _size) {
size_t count = 0;
for (size_t n = 0; n < _size; n++) {
if (count > 1) return true;
else if (!_array[n]) ++count;
if (!_array[n] && !_array[n - 1]) return false;
}
return false;
}
for( i = 0; a[ i ] != 0; i++ ); for( ++i; a[ i ] != 0; i++ ) m = m * a[ i ];
Отписался Вам на почту.