Предмет: Информатика,
автор: Аноним
Требовалось написать программу, которая получает на входе натуральное число n и выводит число, которое получается из n после удаления всех пятерок, порядок остальных цифр при этом не меняется. Программист торопился и написал программу неверно, найдите неверную строку и исправьте ее.
var n, r, t:longint;
d:integer;
begin
readln (n);
r:=0; t:=1;
while n>0 do begin
d:=n mod 10; if d=5 then begin
r:=r+d*t;
t:=t+1
end;
n:=n div 10;
end;
writeln (t);
end.
Ответы
Автор ответа:
0
var n, r, t:longint;
d:integer;
begin
readln (n);
r:=0; t:=1;
while n>0 do begin
d:=n mod 10; if d=5 then begin 1 ошибка: надо вместо d=5 написать d<>5
r:=r+d*t;
t:=t+1 2 ошибка: надо вместо t+1 написать t*10
end;
n:=n div 10;
end;
writeln (t); 3 ошибка: надо вместо t написать r
end.
d:integer;
begin
readln (n);
r:=0; t:=1;
while n>0 do begin
d:=n mod 10; if d=5 then begin 1 ошибка: надо вместо d=5 написать d<>5
r:=r+d*t;
t:=t+1 2 ошибка: надо вместо t+1 написать t*10
end;
n:=n div 10;
end;
writeln (t); 3 ошибка: надо вместо t написать r
end.
Автор ответа:
0
Такой вопрос: почему t*10?
Автор ответа:
0
В этой переменной хранится как бы разряд цифры. Например, 253. 5 выкидываем, а двойка теперь обозначать будет не число сотен, а число десятков. Не знаю, как это грамотно по-научному объяснить, ну вот так как-то. Понятно так?
Автор ответа:
0
Когда слева направо по числу идем в t заносим сначала 1, потом 10, потом 100, ... Т.е. запоминаем, что работаем с единицами, десятками, сотнями.
Автор ответа:
0
Блин((( идем справа налево!!!
Похожие вопросы
Предмет: Литература,
автор: usercomfy200620206
Предмет: Русский язык,
автор: girgensonkarina
Предмет: Русский язык,
автор: kamilla2005t
Предмет: Математика,
автор: VadyaGT
Предмет: Алгебра,
автор: Аноним