Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Почему пишет встречено else, а ожидался оператор

var
a: array [0..255] of string;
d,b,c: array [0..255] of integer;
x, i, count: integer;

begin

writeln('Введите количество студентов в группе');
readln(x);

for i := 1 to x do
begin
writeln('Фамилия ', i, ' студента');
readln(a[i]);
writeln ('Студент увлекается спортом? Да-1/Нет-0');
readln (b[i]);
writeln ('Студент увлекается искусством? Да-1/Нет-0');
readln (c[i]);
end;
count:=0;
for i:=1 to x do

begin
if ((b[i])=1) and ((c[i])=1) then
begin
count:=count+1;
writeln (count);
end;
writeln('Студенты, увлекающиеся и спортом, и искусством:');
for i := 1 to count do
writeln(a[i]);
else
begin
writeln;
writeln ('Нет студентов, увлекающихся и спортом и исскустовм');
end;
end;

end.

По дате
По рейтингу
Аватар пользователя
Просветленный

Ошибка "Встречено else, а ожидался оператор" возникает из-за того, что в коде отсутствует закрывающая скобка после блока условия if ((b[i])=1) and ((c[i])=1) then. Из-за этого программа не может определить, к какому блоку относится оператор else. Чтобы исправить ошибку, нужно добавить закрывающую скобку после блока условия if ((b[i])=1) and ((c[i])=1) then и перед оператором else. Вот исправленный код:

12345678910111213141516171819202122232425262728293031323334353637383940
 var  
a: array [0..255] of string;  
d,b,c: array [0..255] of integer;  
x,  i, count: integer;  
 
begin  
 
writeln('Введите количество студентов в группе');  
readln(x);  
 
for i := 1 to x do   
begin  
writeln('Фамилия ', i, ' студента');  
readln(a[i]);  
writeln ('Студент увлекается спортом? Да-1/Нет-0');  
readln (b[i]);  
writeln ('Студент увлекается искусством? Да-1/Нет-0');  
readln (c[i]);   
end;  
count:=0;  
for i:=1 to x do  
 
begin  
if ((b[i])=1) and ((c[i])=1) then  
begin  
count:=count+1;  
writeln (count);  
end  
else  
begin  
writeln;  
writeln ('Нет студентов, увлекающихся и спортом и исскустовм');  
end;  
end;  
 
writeln('Студенты, увлекающиеся и спортом, и искусством:');  
for i := 1 to count do  
writeln(a[i]);  
 
end. 

Результат программы