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

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

Ответы 2

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

      scoutug9p
    • 6 лет назад
    • 0
  • Ошибка в строкеp:=p*m mod 10;При подсчете произведенияПриоритетность операцийдолжно быть p:=p* (m mod 10);скобки
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years