Аватар
Информатика, опубликовано 2018-08-22 18:23:08 by Гость

Задан массив натуральных чисел размером 30 элементов.Элементы массива могут принимать значения от 1 до 1000.Напишите программу в паскале нахождения и вывода на экран суммы элементов самой длинной последовательности подряд идущих нечетных элементов массива.Если такой последовательности не существует, то программа должна вывести об этом сообщение.Если таких последовательностей несколько, то суммировать можно элементы любой из них.Входные данные:program rabota_s_massivom;const N=30;var M: array[1..N] of integer;i,k,s,kmax,reserve:integer;beginfor i:=1 to N doreadln(M[i]);......end.

Аватар
Ответ оставил Гость

Program rabota_s_massivom;
const  
  N = 10;
var
  M : array[1..N] of integer; 
  i, max, nowMax, maxIndex, index, summ : integer;
begin 
  for i := 1 to N do   
    readln(M[i]); 
  for i := 1 to N do 
  begin   
    if M[i] mod 2 > 0 then
    begin
      if nowMax = 0 then
        index := i;
      nowMax := nowMax + 1;
      if (i = N) and (nowMax > max) then
      begin
        max := nowMax;
        maxIndex := index;
      end;
    end
    else
      if nowMax > max then
      begin
        max := nowMax;
        maxIndex := index;
        nowMax := 0;
      end;
  end;
  if max = 0 then
    writeln(Не существует)
  else
  begin
    summ := 0;
    for i := maxIndex to maxIndex + max - 1 do
      summ := summ + M[i];
    writeln(Сумма: , summ);
  end;
end.

Как-то так

Вопрос
Не нашли ответа?
Если вы не нашли ответа на свой вопрос, или сомневаетесь в его правильности, то можете воспользоваться формой ниже и уточнить решение. Или воспользуйтесь формой поиска и найдите похожие ответы по предмету Информатика.