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

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

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

Ребят помогите!) нужно решить одну задачку.. В одномерном массиве, состоящем из n элементов, вычислить произвед е -ние элементов массива, расположенных между максимальным и мин и -мальным элементами.

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

textual
Листинг программы
#inlcude <stdio.h>
#include <stdlib.h>
 
int main() {
    unsigned i, n, minInd, maxInd;
    int min, max, result = 1;
    int* a;
    scanf("%u", &n);
    a = (int*)malloc(n * sizeof(int));
    for (i = 0; i < n; i++)
        scanf("%d", &a[i]);
    min = max = a[minInd = maxInd = 0];
    for (i = 1; i < n; i++)
        if (a[i] < min)
            min = a[minInd = i];
        else if (a[i] > max)
            max = a[maxInd = i];
    if (minInd > maxInd) {
        minInd += maxInd;
        maxInd = minInd - maxInd;
        minInd -= maxInd;
    }
    for (minInd++; minInd < maxInd; minInd++)
        result *= a[minInd];
    free(a);
    printf("%d", result);
}

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

В этом коде:

  1. Объявлены переменные:
    • i - счётчик для циклов;
    • n - количество элементов в массиве;
    • min - переменная для хранения минимального элемента;
    • max - переменная для хранения максимального элемента;
    • result - переменная для хранения произведения элементов;
    • minInd и maxInd - индексы минимального и максимального элементов;
    • a - указатель на начало массива.
  2. С помощью scanf вводится количество элементов в массиве.
  3. С помощью malloc выделяется память под массив.
  4. С помощью цикла for вводится n чисел в массив.
  5. Вводятся значения минимального и максимального элементов и их индексов.
  6. С помощью цикла for и условных операторов if находятся минимальный и максимальный элементы массива и их индексы.
  7. Если индексы минимального и максимального элементов неопределены, то производится их корректировка с помощью простых арифметических операций.
  8. Цикл for производит перебор элементов массива от индекса минимального до индекса максимального включительно, умножая результат на каждый элемент.
  9. Выделяемая память освобождается с помощью free.
  10. Результат выводится на экран с помощью printf.

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


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

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

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