Олимпиадный тренинг

Задача . П 86


Задача

Темы:
На вход программы поступает натуральное число, не превышающее 109. Нужно написать программу, которая выводит на экран максимальную цифру числа, меньшую 5. Если в числе нет цифр, меньших 5, требуется на экран вывести «NO». В приведённой программе есть ошибки.
Pascal С++
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.

#include<iostream>
using namespace std;
int main()
{
int N, d, m;
cin>>N;
m = N % 10;
while(N>0)
 {
   d=N%10;
   if (d<5) 
     if (d>m)  m=d;
   N=N/10;
 }
if m=0 cout<<"NO";
else cout<<m;
return 0;
}
 
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 157.
2. Укажите наибольшее трёхзначное значение входной переменной n, при вводе которого программа выведет правильный ответ. Укажите это ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.


time 500 ms
memory 32 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя