Информатика, вопрос задал Аноним , 10 лет назад

Требовалось написать программу, которая получает на входе натуральное число 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.
Ответил Аноним
0
Такой вопрос: почему t*10?
Ответил Аноним
0
В этой переменной хранится как бы разряд цифры. Например, 253. 5 выкидываем, а двойка теперь обозначать будет не число сотен, а число десятков. Не знаю, как это грамотно по-научному объяснить, ну вот так как-то. Понятно так?
Ответил Аноним
0
Когда слева направо по числу идем в t заносим сначала 1, потом 10, потом 100, ... Т.е. запоминаем, что работаем с единицами, десятками, сотнями.
Ответил Аноним
0
Блин((( идем справа налево!!!
Новые вопросы