Пользователь вводит число,программа должна вывести на экран 3 случайных числа ,не совпадающих с введённым пользователем числом . ( Паскаль)
Я написала ,но проблема в условии ( сейчас просто цикл) . Исправьте пожалуйста!
uses crt;
var a,b,d:integer;
Begin
readln (a);
randomize;
for b:=1 to 3 do
begin
d:=random (3);
write (' ',d,' ');
end;
end.
Ответы на вопрос
Ответил Jozephjr
0
При таком задании придётся переделать цикл полностью. В частности, придётся отказаться от цикла for и использовать while. Также придётся ввести индекс, определяющий количество значений, не равных введённому. Используем переменную b для этой цели.
Переделывая твой код получаем следующее.
uses crt;
var a,b,d,i:integer;
Begin
readln (a);
randomize;
b := 0;
while i < 3 do
begin
d:=random (10);
if d <> a then
begin
write (' ',d,' ');
i += 1;
end;
end;
end.
Переделывая твой код получаем следующее.
uses crt;
var a,b,d,i:integer;
Begin
readln (a);
randomize;
b := 0;
while i < 3 do
begin
d:=random (10);
if d <> a then
begin
write (' ',d,' ');
i += 1;
end;
end;
end.
Новые вопросы
Русский язык,
2 года назад
Английский язык,
2 года назад
Математика,
8 лет назад
Обществознание,
8 лет назад
Биология,
9 лет назад