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