Дано N. Найти произведение четных чисел этого числа. Решить с помощью паскаля. Ребят, у меня вышла такая программа: Program Pr1; var n,p,m:integer; begin write('n='); readln(n); m:=n; p:=1; while m больше 0 do begin if (m mod 1...
Дано N. Найти произведение четных чисел этого числа. Решить с помощью паскаля.
Ребят, у меня вышла такая программа:
Program Pr1;
var n,p,m:integer;
begin
write('n=');
readln(n);
m:=n;
p:=1;
while m>0 do
begin
if (m mod 10) mod 2=0 then
p:=p*m mod 10;
m:=m div 10;
end;
writeln('В числе ',n,' произведение четных цифр = ',p);
end.
И в ответе, если произведение превышает число 9, выводится его последняя цифра.
Например: n=881
В числе 881 произведение четных цифр = 4
А на самом деле выходит 8*8=64.
Надеюсь, кто-нибудь сможет помочь.
И, да, мне нужна помощь исключительно в улучшении программы, а не написания новой.
Ответ(ы) на вопрос:
Гость
Ошибка в строке
p:=p*m mod 10;
При подсчете произведения
Приоритетность операций
должно быть
p:=p* (m mod 10);
скобки
Не нашли ответ?
Похожие вопросы