Не работает код на паскале

var n, c, i, x: integer;
begin 
 readln(n);
 c := 0;
 for i := 1 to n do
    readln(x);
    if ((x >= 100) and (x <= 999) and (x div 100 = 3) and (x mod 5 = 0)) then c := c + 1;
 writeln(c);
end.

Он должен находить кол-во трёхзначных чисел, начинающихся на 3 и кратных 5, из последовательности длинной n.


Ответы (2 шт):

Автор решения: gbg

Будь проклят тот день, когда кому-то в башку стукнуло придумать, что было бы хорошо управлять логикой программы при помощи отступов.

Паскаль не является Питоном. Так что для того, чтобы readln и if выполнялись вместе, их нужно поместить между begin и end

var n, c, i, x: integer;
begin 
 readln(n);
 c := 0;
 for i := 1 to n do
 begin
    readln(x);
    if ((x >= 100) and (x <= 999) and (x div 100 = 3) and (x mod 5 = 0)) then c := c + 1;
 end;
 writeln(c);
end.
→ Ссылка
Автор решения: RAlex

ReadSeqInteger(ReadInteger).Where(x -> (x in (100..999)) and (x div 100 = 3) and x.Divs(5)).Count.Print

введите сюда описание изображения

→ Ссылка