3. Написать функцию. В одномерном динамическом массиве найти максимальный по модулю элемент массива и сумму элементов массива, расположенных между первым и вторым положительными элементами.
#include <iostream>
int findMaxAbsElement(const int* arr, int size) {
int maxAbsElement = 0;
for (int i = 0; i < size; ++i) {
if (std::abs(arr[i]) > std::abs(maxAbsElement)) {
maxAbsElement = arr[i];
}
}
return maxAbsElement;
}
int findSumBetweenPositives(const int* arr, int size) {
int firstPositiveIndex = -1;
int secondPositiveIndex = -1;
for (int i = 0; i < size; ++i) {
if (arr[i] > 0) {
if (firstPositiveIndex == -1) {
firstPositiveIndex = i;
} else {
secondPositiveIndex = i;
break;
}
}
}
if (firstPositiveIndex == -1 || secondPositiveIndex == -1) {
std::cout << "No two positive elements found." << std::endl;
return 0;
}
int sumBetweenPositives = 0;
for (int i = firstPositiveIndex + 1; i < secondPositiveIndex; ++i) {
sumBetweenPositives += arr[i];
}
return sumBetweenPositives;
}
int main() {
int size;
std::cout << "Enter the size of the array: ";
std::cin >> size;
if (size <= 0) {
std::cout << "Invalid array size." << std::endl;
return 1;
}
int* arr = new int[size];
std::cout << "Enter elements of the array:" << std::endl;
for (int i = 0; i < size; ++i) {
std::cout << "Enter element " << i + 1 << ": ";
std::cin >> arr[i];
}
int maxAbsElement = findMaxAbsElement(arr, size);
std::cout << "Max absolute element: " << maxAbsElement << std::endl;
int sumBetweenPositives = findSumBetweenPositives(arr, size);
std::cout << "Sum between the first and second positive elements: " << sumBetweenPositives << std::endl;
delete[] arr;
return 0;
}
