Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
16.06.2026
Размер:
27.37 Кб
Скачать

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;

}

Соседние файлы в папке Двумерные динамические Массивы ( Решение)