Дано N. Найти произведение четных чисел этого числа. Решить с помощью паскаля. Ребят, у...

0 голосов
37 просмотров

Дано 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.

Надеюсь, кто-нибудь сможет помочь.
И, да, мне нужна помощь исключительно в улучшении программы, а не написания новой.


Информатика (482 баллов) | 37 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Ошибка в строке
p:=p*m mod 10;
При подсчете произведения
Приоритетность операций

должно быть 
p:=p* (m mod 10);
скобки

(2.6k баллов)
0

Спасибо, получилось. А я уже боялась, что именно в программе налажала. Теперь душа спокойна))