Вычислить произведение отрицательных элементов массива - C (СИ)

Узнай цену своей работы

Формулировка задачи:

В одномерном массиве, состоящем из n вещественных элементов, вычислить: •произведение отрицательных элементов массива; • сумму положительных элементов массива, расположенных до максимального элемента. • Изменить порядок следования элементов в массиве на обратный.

Решение задачи: «Вычислить произведение отрицательных элементов массива»

textual
Листинг программы
#include <iostream>
#include <iomanip>
#include <algorithm>
 
void reverse(float [], int, int);
 
int main()
{
    const int n = 5;
    float mass[n] = {-1.5, 3.7, -5.7, 4.3, 16.7};
    float negativeProduct = 1;
    float positiveSum = 0;
    int indexOfMax = 0;
    float max = mass[0];
 
    for(int i = 0; i < n; i++)
    {
        std::cout << std::setw(5) << mass[i];
 
        if(mass[i] > max)
        {
            max = mass[i];
            indexOfMax = i;
        }
    }
 
    std::cout << "\n\nПроизведение отрицательных эл-ов: ";
 
    for(int i = 0; i < n; i++)
        negativeProduct = mass[i] < 0 ?
        negativeProduct * mass[i] : negativeProduct;
 
    std::cout << negativeProduct << std::endl;
 
    std::cout << "\nСумма положительных эл-ов до max: ";
 
    for(int i = 0; i < indexOfMax; i++)
        positiveSum = mass[i] > 0 ?
        positiveSum + mass[i] : positiveSum;
 
    std::cout << positiveSum << std::endl;
 
    std::cout << "\nИзмененный порядок следования: " << std::endl;
 
    reverse(mass,0,sizeof(mass)/sizeof(float)-1);
 
    for(int i = 0; i < n; i++)
        std::cout << std::setw(5) << mass[i];
 
    std::cout << std::endl;
 
    return 0;
}
 
void reverse(float mass[], int begin, int end)
{
    if(begin < end)
    {
        reverse(mass,begin+1,end-1);
 
        std::swap(mass[begin],mass[end]);
    }
}

Объяснение кода листинга программы

В этом коде вычисляется произведение отрицательных элементов массива, а также выводится на экран измененный порядок следования элементов массива. Список действий:

  1. Объявление переменных:
    • n - размер массива (5);
    • mass - массив ({-1.5, 3.7, -5.7, 4.3, 16.7});
    • negativeProduct - произведение отрицательных элементов массива (1);
    • positiveSum - сумма положительных элементов массива до максимального элемента (0);
    • indexOfMax - индекс максимального элемента (0);
    • max - максимальный элемент массива (16.7);
    • reverse - функция для переворачивания элементов массива;
    • begin и end - указатели на начало и конец участка массива, который необходимо перевернуть.
  2. Вывод на экран всех элементов массива.
  3. Поиск максимального элемента массива и его индекса.
  4. Вычисление произведения отрицательных элементов массива.
  5. Вычисление суммы положительных элементов массива до максимального элемента.
  6. Вывод на экран измененного порядка следования элементов массива.
  7. Рекурсивный вызов функции reverse для участка массива, который необходимо перевернуть.
  8. Обмен значениями элементов массива mass[begin] и mass[end].
  9. В случае, если begin < end, рекурсивный вызов функции reverse для участка массива, который находится между begin и end.
  10. В конце программы возвращается 0, что означает успешное выполнение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.5 из 5
Похожие ответы