• Помогите, пожалуйста! Мне надо подробное решение.
    На вход программе подается
    последовательность символов, заканчивающаяся точкой. Требуется написать
    программу, которая определяет, есть ли в этой последовательности десятичные
    цифры, и выводит наибольшее число, которое можно составить из этих цифр.
    Ведущих нулей в числе быть не должно (за исключением числа 0, запись которого
    содержит ровно одну цифру). Если цифр нет, программа должна вывести на экран
    слово «Нет», а если есть – слово «Да» и в следующей строчке искомое число.
    Например, если исходная последовательность была такая:

    Day 10, mice 8: "Year" 7 is a mistake 91.

    то результат должен быть
    следующий:

    Да

    987110

     

Ответы 1

  • var  str, num: string;begin  readln(str); //str := 'Day 10, mice 8: "Year" 7 is a mistake 91.';  foreach c: char in str do    if (Char.IsDigit(c)) then      num += c;  for j: byte := 1 to length(num) - 2 do    for i: byte := 1 to length(num) - 1 do      if (num[i] < num[i + 1]) then      begin        str[1] := num[i];        num[i] := num[i + 1];        num[i + 1] := str[1];      end;  if (Integer.Parse(num) > 0) then  begin    while (num[num.Length - 1] = '0') do      num.Remove(num.Length - 1);    writeln('Да' + #13 + num);  end  else    writeln('Нет');end.
  • Добавить свой ответ

Войти через Google

или

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

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

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