Вопрос задан 16.05.2020 в 23:19. Предмет Информатика. Спрашивает Vtorushin Alex.

Помогите, пожалуйста! Мне надо подробное решение.На вход программе подается последовательность

символов, заканчивающаяся точкой. Требуется написать программу, которая определяет, есть ли в этой последовательности десятичные цифры, и выводит наибольшее число, которое можно составить из этих цифр. Ведущих нулей в числе быть не должно (за исключением числа 0, запись которого содержит ровно одну цифру). Если цифр нет, программа должна вывести на экран слово «Нет», а если есть – слово «Да» и в следующей строчке искомое число. Например, если исходная последовательность была такая:Day 10, mice 8: "Year" 7 is a mistake 91. то результат должен быть следующий:Да987110
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Тупиков Сергей.
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.
0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос