Помогите пожалуйста!
На вход программы поступает натуральное число, не превышающее 10^9 Нужно написать
программу, которая выводит на экран максимальную цифру числа, меньшую 5 Если в числе нет цифр,
меньших 5, требуется на экран вывести «NO». В приведённой программе есть ошибки.
var N, d, m: longint;
begin
readln(N);
m := N mod 10;
while N > 0 do begin
d := N mod 10;
if d < 5 then
if d > m then m := d;
N := N div 10;
end;
if m = 0 then
writeln('NO')
else writeln( m )
end.
Последовательно выполните следующее.
1 Напишите, что выведет эта программа при вводе числа 157
2 Укажите наибольшее трёхзначное значение входной переменной n, при вводе которого
программа выведет правильный ответ. Укажите это ответ.
3 Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки
выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Answers & Comments
Verified answer
1) 7 - изза начального присвоение m2) 994. 4 соответствует условию, остальные числа лишь максимизируют число
3)
var
N, d, m: longint;
begin
readln(N);
{m := N mod 10; ошибочная строка}
m:=-1; {N mod 10 - может не удовлетворять условию, 0 - может и удовлетворять условию }
while N > 0 do
begin
d := N mod 10;
if d < 5 then
if d > m then m := d;
N := N div 10;
end;
{if m = 0 then ошибочная строка}
if m = -1 then {если в цикле m так не разу и не поменялась}
writeln('NO')
else writeln(m);
end.