Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
2.7 kB
5
Indexable
Never
#include <iostream>
#include <algorithm> // нужно для функции sort
#include <cstdlib> // нужно для функции rand

using namespace std;

const int N = 10; // размер массива

int main() {
    double arr[N]; // объявляем массив arr типа double размером N

    // заполняем массив случайными числами в диапазоне [-10.0, 10.0]
    for (int i = 0; i < N; i++) {
        arr[i] = (rand() % 21 - 10) / 1.0; // генерируем случайное число от -10 до 10
    }

    double sum = 0; // сумма отрицательных элементов
    double product = 1; // произведение элементов, расположеных между максимальным и минимальным элементами
    double max = arr[0]; // максимальный элемент
    double min = arr[0]; // минимальный элемент
    int start = 0; // индекс элемента, с которого нужно начать умножение
    int end = 0; // индекс элемента, на котором нужно закончить умножение
    // вычисляем сумму отрицательных элементов, максимальный и минимальный элементы, а также индексы элементов, с которых нужно начать и закончить умножение
    for (int i = 0; i < N; i++) {
        if (arr[i] < 0) {
            sum += arr[i];
        }
        if (arr[i] > max) {
            max = arr[i];
            start = i;
        }
        if (arr[i] < min) {
            min = arr[i];
            end = i;
        }
    }

// устанавливаем порядок умножения: сначала нужно умножить элементы с меньшими индексами, потом - с большими
    if (start > end) {
        swap(start, end);
    }

// вычисляем произведение элементов, расположенных между максимальным и минимальным элементами
    for (int i = start + 1; i < end; i++) {
        product *= arr[i];
    }
    // упорядочиваем элементы массива по увеличению
    sort(arr, arr + N);

    cout << "Sum of negative elements: " << sum << endl;
    cout << "Product of elements between max and min: " << product << endl;
    cout << "Sorted array: ";
    for (int i = 0; i < N; i++) {
        cout << arr[i] << " ";
    }
    cout << endl;

    return 0;
}