В одномерном массиве, состоящем из n целых элементов, вычислить:
- номер максимального элемента массива;
- произведение элементов массива, расположенных между первым и вторым нулевыми элементами.
- номер максимального элемента массива;
- произведение элементов массива, расположенных между первым и вторым нулевыми элементами.
#include <iostream> #include <vector> #include <algorithm> #include <iterator> #include <random> #include <cstddef> #include <numeric> #include <functional> int main() { size_t N = 10; std::vector<int> v(N); std::mt19937 gen { std::random_device()() }; std::uniform_int_distribution<> uid(-10, 10); std::generate(v.begin(), v.end(), [&uid, &gen] { return uid(gen); }); std::copy(v.cbegin(), v.cend(), std::ostream_iterator<int>(std::cout, " ")); std::cout << std::endl; auto max = std::max_element(v.cbegin(), v.cend()); size_t maxNumber = std::distance(v.cbegin(), max) + 1; std::cout << "Number of max element is " << maxNumber << std::endl; auto beg = std::find(v.cbegin(), v.cend(), 0); if (beg != v.end()) { auto end = std::find(beg+1, v.cend(), 0); long mult = std::accumulate(beg + 1, end, 1, std::multiplies<int>()); std::cout << "Multiplication of integers between first and second " << "zeroes/end of sequence is " << mult << std::endl; } else std::cout << "This sequence does not contain 0\n"; }
Комментариев нет:
Отправить комментарий