Вводится целое положительное число. найти наименьшую нечетную цифру в числе. если в числе нет нечетных цифр, то вывести надпись "в числе нет нечетных цифр"

7rus790 7rus790    3   23.06.2019 09:10    0

Ответы
carisha2201 carisha2201  02.10.2020 09:14
Var
a,k,m,min,i,flag:integer;
    begin
            readln(a);
            m:=a; {сохраняю введенное значение и считаю кол-во цифр в числе}
              while m >0 do     
                  begin         
                          m:=m div 10;         
                          k:=k+1;     
                  end;     
min:=9; {записываю самое большое нечетное число}
{в цикле отсекаю последнюю цифру в числе и проверяю ее на нечетность. Если она нечетная и меньше числа min, то сохраняю ее в min и присваиваю переменной Flag 1. Если к концу программы в переменной flag  будет 1, значит хотя бы одна нечетная цифра в числе была, если flag=0 тогда в числе нет нечетных}
            for i:=1 to k do   
                      begin       
                             if   (a mod 10<=min)and(a mod 2<>0) then           
                                begin             
                                     min:=a mod 10;             
                                     flag:=1;           
                                end;       
                          a:=a div 10;   
                     end;         
      if flag=0 then           
                writeln('нет нечетных')         
      else             
                writeln(min);
end.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика