Дано целое число N и набор из N целых чисел, содержащий по крайней мере два нуля. Вывести сумму чисел из данного набора, расположенных между первыми двумя нулями (если первые нули идут подряд, то вывести 0) — Pascal(Паскаль)

program pr;
const n=7;
type mas=array[1..n] of integer;
var i,s,b,c:integer;
    a:mas;
begin
     writeln('vvodim massiv (v nem dolgno bite ne menee 2-x nylei)');
     for i:=1 to n do
     begin
          writeln('a[',i,']=');
          readln(a[i]);
     end;
     b:=0;
     c:=0;
     i:=0;
     s:=0;
     while b=0 do
     begin
          i:=i+1;
          if a[i]=0 then b:=i;
     end;
     while c=0 do
     begin
          i:=i+1;
          if a[i]=0 then c:=i;
     end;
     if c-b<>1 then
        for i:=b to c do s:=s+a[i];
     writeln('symma=',s);
end.

Следующий вариант

uses crt;
var n,a,s,i,j,k:integer;
begin
clrscr;
repeat
write('Сколько чисел ввести, в том числе 2 ноля, n>2 n=');
readln(n);
until n>2;
j:=0;
k:=0;
for i:=1 to n do
 begin
  readln(a);
  if (a=0)and(j=0)and(k=0)then//если а=0 и еще не было нолей
   begin
    s:=0;//начинаем считать сумму
    j:=1;//зафиксируем первый ноль
   end
  else if(a<>0)and(j=1)and(k=0) then s:=s+a//если один ноль был, а второй еще нет, считаем сумму
  else if(a=0)and(j=1)and(k=0) then k:=1;//если второй ноль, фиксируем
 end;
write('Сумма между первыми нолями=',s);
readln
end.

Leave a Comment

37 − 35 =