В одномерном массиве вычислить произведение элементов массива, расположенных между максимальным и минимальным элементами - 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);
}
Объяснение кода листинга программы
В этом коде:
- Объявлены переменные:
i- счётчик для циклов;n- количество элементов в массиве;min- переменная для хранения минимального элемента;max- переменная для хранения максимального элемента;result- переменная для хранения произведения элементов;minIndиmaxInd- индексы минимального и максимального элементов;a- указатель на начало массива.
- С помощью
scanfвводится количество элементов в массиве. - С помощью
mallocвыделяется память под массив. - С помощью цикла
forвводитсяnчисел в массив. - Вводятся значения минимального и максимального элементов и их индексов.
- С помощью цикла
forи условных операторовifнаходятся минимальный и максимальный элементы массива и их индексы. - Если индексы минимального и максимального элементов неопределены, то производится их корректировка с помощью простых арифметических операций.
- Цикл
forпроизводит перебор элементов массива от индекса минимального до индекса максимального включительно, умножая результат на каждый элемент. - Выделяемая память освобождается с помощью
free. - Результат выводится на экран с помощью
printf.