Будь ласка зробіть це на С++ коді
У одновимірному масиві, що складається з n дійсних елементів, обчислити:
1) суму елементів, розташованих між максимальним елементом і мінімальним по модулю елементом,
2) добуток модулів елементів масиву, розташованих після другого від`ємного елементу.
3) Стиснути масив, видаливши з нього всі елементи, значення яких не знаходиться в проміжку (значення а, b ввести). Елементи, що звільнилися наприкінці масиву, заповнити нулями.
Ответы
має бути приблизно ось так
#include <iostream>
#include <cmath>
#include <limits>
using namespace std;
int main() {
// Оголошення та ініціалізація масиву
const int n = 10; // можна вказати бажану розмірність масиву
double arr[n] = {3.5, -2.7, 1.2, 4.8, -3.3, 7.1, -0.6, 2.0, -1.5, 6.4}; // приклад значень
// Завдання 1: сума елементів між максимальним і мінімальним по модулю елементами
double maxElement = arr[0];
double minAbsElement = arr[0];
int maxIndex = 0;
int minAbsIndex = 0;
for (int i = 1; i < n; ++i) {
if (abs(arr[i]) > abs(maxElement)) {
maxElement = arr[i];
maxIndex = i;
}
if (abs(arr[i]) < abs(minAbsElement)) {
minAbsElement = arr[i];
minAbsIndex = i;
}
}
// Визначення границь для обчислення суми
int start, end;
if (maxIndex < minAbsIndex) {
start = maxIndex;
end = minAbsIndex;
} else {
start = minAbsIndex;
end = maxIndex;
}
double sumBetween = 0;
for (int i = start + 1; i < end; ++i) {
sumBetween += arr[i];
}
cout << "Сума елементів між максимальним і мінімальним по модулю елементами: " << sumBetween << endl;
// Завдання 2: добуток модулів елементів після другого від'ємного елементу
double productAfterNeg = 1;
int negCount = 0;
for (int i = 0; i < n; ++i) {
if (arr[i] < 0) {
negCount++;
if (negCount == 2) {
for (int j = i + 1; j < n; ++j) {
productAfterNeg *= abs(arr[j]);
}
break;
}
}
}
cout << "Добуток модулів елементів після другого від'ємного елементу: " << productAfterNeg << endl;
// Завдання 3: стиснення масиву
double a, b;
cout << "Введіть значення a: ";
cin >> a;
cout << "Введіть значення b: ";
cin >> b;
int compressedSize = 0;
for (int i = 0; i < n; ++i) {
if (arr[i] >= a && arr[i] <= b) {
arr[compressedSize++] = arr[i];
}
}
// Заповнення залишкових елементів нулями
for (int i = compressedSize; i < n; ++i) {
arr[i] = 0;
}
// Вивід стиснутого масиву
cout << "Стиснутий масив: ";
for (int i = 0; i < n; ++i) {
cout << arr[i] << " ";
}
return 0;
}