
Задание по теме "одномерные массивы". Нужно написать код на ЯП'е C++: В одномерном массиве,
состоящем из N действительных чисел, вычислить: ■ Сумму отрицательных элементов; ■ Произведение элементов, расположенных между min и max элементами; ■ Произведение элементов с парными номерами; ■ Сумму элементов между первым и последним отрицательными элементами.

Ответы на вопрос

#include <iostream>
using namespace std;
int main() {
size_t N, *firstNegative = nullptr, lastNegative, minIndex, maxIndex;
cin >> N;
int64_t* arr = new int64_t[N], min = INT64_MAX, max = INT64_MIN;
for (size_t i = 0; i < N; ++i) {
cin >> arr[i];
if (arr[i] < 0) {
if (firstNegative == nullptr) {
firstNegative = new size_t;
*firstNegative = i;
}
lastNegative = i;
}
if (arr[i] < min) {
min = arr[i];
minIndex = i;
}
else if (arr[i] > max) {
max = arr[i];
maxIndex = i;
}
}
int64_t sumNegative = 0, minMaxMult = 1, evenMult = 1, sumFirstLastNegative = 0;
for (size_t i = 0; i < N; ++i) {
if (arr[i] < 0)
sumNegative += arr[i];
if ((minIndex < maxIndex && i > minIndex && i < maxIndex) || (minIndex > maxIndex && i < minIndex && i > maxIndex))
minMaxMult *= arr[i];
if ((i + 1) % 2 == 0) // i + 1 п-ку обычно считают с 1
evenMult *= arr[i];
if (i > *firstNegative && i < lastNegative)
sumFirstLastNegative += arr[i];
}
setlocale(0, "");
cout << "Сумма отрицательных элементов: " << sumNegative << endl;
cout << "Произведение элементов между минимальным и максимальным элементами: " << minMaxMult << endl;
cout << "Произведение элементов с парными (чётными) порядковыми номерами: " << evenMult << endl;
cout << "Сумма элементов между первым и последним отрицательными элементами: " << sumFirstLastNegative << endl;
}



Вот пример кода на C++ для решения данной задачи:
```cpp
#include
int main() { int n; cout << "Введите размер массива: "; cin >> n; double arr[n]; cout << "Введите элементы массива: "; for (int i = 0; i < n; i++) { cin >> arr[i]; } double sumNegative = 0; double prodMinMax = 1; double prodEven = 1; double sumBetweenNegatives = 0; int minIndex = 0; int maxIndex = 0; int firstNegativeIndex = -1; int lastNegativeIndex = -1; for (int i = 0; i < n; i++) { if (arr[i] < 0) { sumNegative += arr[i]; if (firstNegativeIndex == -1) { firstNegativeIndex = i; } lastNegativeIndex = i; } if (arr[i] < arr[minIndex]) { minIndex = i; } if (arr[i] > arr[maxIndex]) { maxIndex = i; } if (i > minIndex && i < maxIndex) { prodMinMax *= arr[i]; } if (i % 2 == 0) { prodEven *= arr[i]; } } for (int i = firstNegativeIndex + 1; i < lastNegativeIndex; i++) { sumBetweenNegatives += arr[i]; } cout << "Сумма отрицательных элементов: " << sumNegative << endl; cout << "Произведение элементов, расположенных между min и max элементами: " << prodMinMax << endl; cout << "Произведение элементов с парными номерами: " << prodEven << endl; cout << "Сумма элементов между первым и последним отрицательными элементами: " << sumBetweenNegatives << endl; return 0; } ```
Программа сначала запрашивает размер массива `n` и элементы массива у пользователя. Затем она проходит по массиву и вычисляет сумму отрицательных элементов, произведение элементов между минимальным и максимальным элементами, произведение элементов с парными номерами и сумму элементов между первым и последним отрицательными элементами. Результаты вычислений выводятся на экран.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili