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

Ответы 6

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

      coco92
    • 6 лет назад
    • 0
  • Все можно решить гораздо проще.
    • Автор:

      pascual49
    • 6 лет назад
    • 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<min) and ((n mod 2)=1) then min:=n end; if min<10 then Writeln('Наименьшая нечетная цифра в числе равна ',min) else Writeln('В числе нет нечетных цифр')end.
  • Приношу извинения, строка с char не нужна.
    • Автор:

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

      cindyspjy
    • 6 лет назад
    • 0
  • vara,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.
  • Добавить свой ответ

Войти через Google

или

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

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

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