Задать вопрос
10 февраля, 13:12

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

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

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

+5
Ответы (1)
  1. 10 февраля, 15:57
    0
    Ошибка в строке

    p:=p*m mod 10;

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

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

    должно быть

    p:=p * (m mod 10);

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