Найти сумму чисел последовательности, расположенных между максимальным и минимальным числами - C (СИ)
Формулировка задачи:
Даны действительные числа A[1],A[2],A[3],...,A[n]. Найти сумму чисел этой последовательности, расположенных между максимальным и минимальным числами (в сумму включить и оба этих числа).
Решение задачи: «Найти сумму чисел последовательности, расположенных между максимальным и минимальным числами»
textual
Листинг программы
void squeezeArr(int A[], int n)
{
int min = A[0];
int max = A[0];
int m, M, sum;
for (int i = 0; i < n; i++)
{
if (min > A[i])
{
min = A[i];
m = i;
}
if(max < A[i])
{
max = A[i];
M = i;
}
}
min = m < M ? m : M;
max = m > M ? m : M;
for (int min; min <= max; min++)
{
sum += A[min];
}
}
Объяснение кода листинга программы
- Входные данные: массив A и его размер n.
- Создаются четыре переменные: min, max, m и M.
- Изначально min и max присваиваются первому элементу массива A[0].
- Переменная m и M не инициализируются, так как они используются для хранения индексов минимального и максимального элементов, их инициализация будет произведена позже.
- Происходит проход по всем элементам массива от начала до конца.
- Если текущий элемент меньше min, то обновляется значение min, а также индекс m, который будет хранить индекс минимального элемента.
- Если текущий элемент больше max, то обновляется значение max, а также индекс M, который будет хранить индекс максимального элемента.
- После прохода по всем элементам массива, значения min и max будут содержать индексы минимального и максимального элементов соответственно.
- Значение переменной min сравнивается с M, если min меньше M, то значение переменной M присваивается значение переменной min, иначе значение переменной min присваивается значение переменной M.
- Значение переменной max сравнивается с m, если max меньше m, то значение переменной m присваивается значение переменной max, иначе значение переменной max присваивается значение переменной m.
- Происходит проход по всем элементам массива от min до max включительно.
- К сумме sum прибавляется значение каждого элемента массива A[min].
- Возвращаемое значение функции - сумма чисел последовательности, расположенных между максимальным и минимальным числами.