Алгоритм подсчета max количества подряд идущих отрицательных элементов в целочисленном массиве длины 30 - Free Pascal
Формулировка задачи:
Опиcать алгоритм подсчета максимального количества подряд идущих отрицательных элементов в целочисленном массиве длины 30
выводит только нули почему-то. пж исправьте.
uses crt; const n=30; var a:array[1..n] of integer; kmax, k, i: integer; BEGIN k:=0; kmax:=0; for i:= 1 to n do begin write('a[',i,']='); read(a[i]); end; for i:= 1 to n do begin if a[i]<0 then inc(k) else if k>=kmax then kmax:=k; k:=0; end; if k>=kmax then kmax:=k;write(kmax); readln; readln; END.
Решение задачи: «Алгоритм подсчета max количества подряд идущих отрицательных элементов в целочисленном массиве длины 30»
textual
Листинг программы
then begin kmax:=k; k:=0; end; end;
Объяснение кода листинга программы
В данном коде на языке Free Pascal реализуется алгоритм подсчета максимального количества подряд идущих отрицательных элементов в целочисленном массиве длины 30.
kmax
- это максимальное значение переменнойk
, которое будет достигнуто в процессе выполнения алгоритма. Изначально значениеkmax
равноk
.k
- это счетчик, который используется для подсчета количества подряд идущих отрицательных элементов в массиве. В начале выполнения алгоритма значениеk
равно 0.- Внешний цикл
for i := 0 to 29
используется для прохода по всем элементам массива. - Внутренний цикл
while abs(a[i]) < 0
используется для подсчета количества подряд идущих отрицательных элементов. Пока текущий элемент массива имеет отрицательное значение, увеличивается значениеk
. - Если значение
k
становится больше текущего значенияkmax
, то значениеkmax
обновляется. - После завершения внутреннего цикла, значение
k
сбрасывается до 0. - В конце алгоритма выводится значение
kmax
- максимальное количество подряд идущих отрицательных элементов в массиве.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д