Другие языки программирования и технологии
Написать функцию, вычисляющую произведение элементов массива, расположенных между первым и вторым нулевым элементам
на языке с++
#include <iostream>
#include <ctime>
#include <iomanip>
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;
}
#include <ctime>
#include <iomanip>
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 ];
Отписался Вам на почту.
Похожие вопросы
- Вычислить сумму элементов массива, расположенных между первым и вторым отрицательными элементами - C++
- C++ Нужно вычислить сумму элементов массива, расположенных между первым и последним отрицательными элементами.
- Помогите с С++. Надо найти произведение элементов одномерного массива между первым и последним 0.
- Напишите программу, которая находит в массиве количество элементов, равных заданному значению X .
- Написать программу работы с одномерным массивом из 15 вещественных элементов для решения задач:
- найти произведение элементов массива, расположенных после максимального по модулю элемента
- задачка PAscal. найти сумму положительных элементов массива, расположенных до минимального элемента этого массива
- Паскаль, одномерн массив, вычислить сумму элементов массива, расположенных после последнего элемента, равного нулю. Спасибо)
- №1.Как вычислить произведение элементов массива(1..5)В Паскале=)))№2.Найти наименьший элемент в массиве!Тоже в Паскале)
- программа в Паскале. Найти максимальный элемент из элементов массива, расположенных над главной диагональю.