Предмет: Информатика,
автор: спирит5ллл
Дано натуральное число N, не превосходящее 108. Необходимо найти и вывести число, которое получится при записи N справа налево и удалении всех девяток. Ведущие нули выводить не надо. Если в числе N нет цифр кроме девяток и нулей, необходимо вывести 0. Например, при вводе числа 1984 нужно вывести 481, а при вводе 2009 нужно вывести 2. Для решения этой задачи ученик написал такую программу:
var n, m: longint;
d: integer;
begin
read(n);
m := 0;
while n>1 do begin
d := n mod 10;
if d < 9 then begin
m := m + d;
end;
n := n div 10;
end;
write(m);
end.
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 1984.
2. Приведите пример числа, при вводе которого программа выдаст верный ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде. Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.
alamar:
Но ведь условие протеворечит само себе н должно быть меньше 108 , а1984 уже больше 108
Ответы
Автор ответа:
2
1 12
2 2,3,4,9
3
var
n, m: longint;
d: integer;
begin
read(n);
m := 0;
while n > 0 do {1 на 0}
begin
d := n mod 10;
if d < 9 then begin
m := 10 * m + d; {домножили на 10}
end;
n := n div 10;
end;
write(m);
end.
2 2,3,4,9
3
var
n, m: longint;
d: integer;
begin
read(n);
m := 0;
while n > 0 do {1 на 0}
begin
d := n mod 10;
if d < 9 then begin
m := 10 * m + d; {домножили на 10}
end;
n := n div 10;
end;
write(m);
end.
Похожие вопросы
Предмет: Русский язык,
автор: айка377
Предмет: Английский язык,
автор: sofia042
Предмет: Русский язык,
автор: Doshik131
Предмет: Литература,
автор: mooonligt