• Помогите пожалуйста!
    На вход программы поступает натуральное число, не превышающее 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 Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки
    выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

Ответы 1

  • 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.
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years