Задать вопрос
3 августа, 17:58

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

Надеюсь, кто-нибудь сможет помочь.

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

+1
Ответы (1)
  1. 3 августа, 21:24
    0
    Ошибка в строке

    p:=p*m mod 10;

    При подсчете произведения

    Приоритетность операций

    должно быть

    p:=p * (m mod 10) ;

    скобки
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Дано N. Найти произведение четных чисел этого числа. Решить с помощью паскаля. Ребят, у меня вышла такая программа: Program Pr1; var n, p, ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы