помогите пожалуста исправить ошибку ,у меня только 'да' выдаёт!
program z1;
uses crt;
var s:string; i,k:integer;
begin
clrscr;
readln(s);
k:=0;
for i:=1 to length(s) do
begin
if s='(' then k:=k+1;
if s=')' then k:=k-1;
if k<0 then begin writeln('NO'); halt; end;
end;
writeln('YES!');
readkey;
end.
баланс скобок
Ошибка, во первых если скобок ')' больше то действие
не выполниться,
и во вторых зачем writeln в цикл заключил,
вот рабочий вариант
Код: Выделить всё
if k<0 then begin writeln('NO');
и во вторых зачем writeln в цикл заключил,
вот рабочий вариант
Код: Выделить всё
program z1;
uses crt;
var s:string; i,k:integer;
begin
clrscr;
readln(s);
k:=0;
for i:=1 to length(s) do
begin
if s[i]='(' then k:=k+1;
if s[i]=')' then k:=k-1;
end;
if k=0 then begin writeln('YES') else writeln('NO');
readkey;
end.