Дано 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.
Надеюсь, кто-нибудь сможет помочь.
И, да, мне нужна помощь исключительно в улучшении программы, а не написания новой.
Ответы на вопрос
Ответил cccc1808
3
Ошибка в строке
p:=p*m mod 10;
При подсчете произведения
Приоритетность операций
должно быть
p:=p* (m mod 10);
скобки
p:=p*m mod 10;
При подсчете произведения
Приоритетность операций
должно быть
p:=p* (m mod 10);
скобки
Натка3:
Спасибо, получилось. А я уже боялась, что именно в программе налажала. Теперь душа спокойна))
Новые вопросы
Окружающий мир,
2 года назад
Английский язык,
2 года назад
Другие предметы,
2 года назад
Математика,
7 лет назад