Алгоритм подсчета 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- максимальное количество подряд идущих отрицательных элементов в массиве.