Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от 0 до 10 включительно – показатели среднего отклонения от нормальной работы прибора за день, зафиксированные в течение месяца. Написать на языке Паскаль алгоритм подсчета максимального количества подряд идущих дней, в которые прибор работал исправно (отклонение от нормальной работы прибора за день было равно 0), при условии, что хотя бы один день прибор работал исправно. Исходные данные объявлены так, как показано ниже. Запрещается использовать необъявленные переменные, но разрешается не использовать часть из них.
const n = 30;
var a : array [1 .. n] of integer;
I, k1, k2 : integer;
begin for i := 1 to n do readln ( a [ i ] );
…
end.
Answers & Comments
Verified answer
Const n = 30;var a : array [1 .. n] of integer;
i, k1, k2 : integer;
begin
for i := 1 to n do read(a[i]);
k1:=0; k2:=0;
for i:=1 to n do
if (a[i]>0) then
begin
if k1>k2 then k2:=k1;
k1:=0;
end
else k1:=k1+1;
if k1>k2 then k2:=k1;
writeln('max = ',k2);
end.
Пример:
3 9 7 9 2 9 1 7 5 8 9 9 0 0 0 0 1 1 0 0 7 4 3 3 7 5 1 0 4 3
max = 4