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

0 голосов
155 просмотров

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


Информатика (61 баллов) | 155 просмотров
0

язык программирования какой?

0

Тогда пишу на паскале

Дан 1 ответ
0 голосов

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.

(9.6k баллов)
0

Набираю число 493570. Программа слетает с сообщением, что число очень большое для представления с заданной точностью. А что - имею право, нигде не написано, в каких пределах это число должно быть.

0

Все можно решить гораздо проще.

0

var
s:string;
i,n,min,err:integer;
c:char;
begin
Write('Введите произвольное число: ');
Readln(s);
min:=10;
for i:=1 to Length(s) do
begin
Val(s[i],n,err);
if err=0 then
if (n end;
if min<10 then <br> Writeln('Наименьшая нечетная цифра в числе равна ',min)
else
Writeln('В числе нет нечетных цифр')
end.

0

Приношу извинения, строка с char не нужна.

0

Работает для любых чисел в любом формате и даже запрятанных в текст. разреженных пробелами и т.д.