Вычислить минимум и сумму элементов массива, расположенных между первым и последним положительным элементами - C (СИ)
Формулировка задачи:
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
- минимальный элемент массива;
- сумму элементов массива, расположенных между первым и последним положительными
элементами
язык си
Решение задачи: «Вычислить минимум и сумму элементов массива, расположенных между первым и последним положительным элементами»
textual
Листинг программы
int main() {
//считывание n
//заполенение массива
int min = a[0];
int k=0; //номер последнего минимального
int sum=0;
int flag=0;
for (i=0; i<n; i++)// вычисление минимального
{
if (min>a[i])
min = a[i];
if (a[i]<0)
k=i;
}
for (i=1; i<k; i++)
{
if (a[i-1]<0)
flag = 1;
if (flag)
sum+=a[i];
}
// вывод минимума и суммы
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Считывается переменная
n, которая представляет собой размер массива. - Заполняется массив
aзначениями. - Переменная
minинициализируется значением первого элемента массиваa. - Переменная
kинициализируется нулем. Она будет использоваться для отслеживания индекса последнего отрицательного элемента. - Переменная
sumинициализируется нулем. Она будет использоваться для накопления суммы положительных элементов. - Переменная
flagинициализируется нулем. Она будет использоваться для отслеживания того, был ли найден положительный элемент. - Цикл for проходит по всем элементам массива
a. - Если текущий элемент меньше
min, то обновляется значениеmin. - Если текущий элемент отрицательный, то обновляется значение
k. - Цикл for проходит по всем элементам массива
a, начиная со второго элемента и заканчиваяk-1. - Если предыдущий элемент отрицательный, то переменная
flagустанавливается в 1. - Если
flagравно 1, то кsumдобавляется текущий элемент. - Выводятся значения
minиsum. - Возвращается ноль, что означает успешное выполнение программы.