Предмет: Информатика, автор: alextrf2006

Будь ласка зробіть це на С++ коді
У одновимірному масиві, що складається з n дійсних елементів, обчислити:
1) суму елементів, розташованих між максимальним елементом і мінімальним по модулю елементом,
2) добуток модулів елементів масиву, розташованих після другого від`ємного елементу.
3) Стиснути масив, видаливши з нього всі елементи, значення яких не знаходиться в проміжку (значення а, b ввести). Елементи, що звільнилися наприкінці масиву, заповнити нулями.

Ответы

Автор ответа: sashok451
0

має бути приблизно ось так

#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;

}

Похожие вопросы