Нахождение максимального числа после перестановки его цифр - QBasic
Формулировка задачи:
Условие
На вход программе подаётся последовательность символов,заканчивающаяся точкой.Требуется написать программу,которая определяет,есть ли в этой последовательности десятичные цифры,и выводит наибольшее число,которое можно составить из этих цифр.Если цифр нет программа выводит "нет",если есть выводит слово "да" и в следующей строчке искомое число.
вот то,что я написал:
дальше как найти максимальное число фантазия кончилась,помогите,если в моём начале что то не так скажите что,если напишите свой вариант,мой рассматривать не обязательно,и ещё появился вопрос:как застопорить программу при встрече точки,что бы дальше не считало.
Решение задачи: «Нахождение максимального числа после перестановки его цифр»
textual
Листинг программы
CLS DIM a(9) AS INTEGER DIM i AS INTEGER, j AS INTEGER, n AS INTEGER, m AS INTEGER INPUT s$ FOR i = 1 TO LEN(s$) m = ASC(MID$(s$, i, 1)) IF m >= 48 AND m <= 57 THEN n = n + 1 a(m - 48) = a(m - 48) + 1 END IF NEXT IF n = 0 THEN PRINT "NO" ELSE PRINT "YES" FOR i = 9 TO 0 STEP -1 FOR j = 1 TO a(i) PRINT LTRIM$(STR$(i)); NEXT j, i END IF
Объяснение кода листинга программы
- Очистка экрана - команда CLS очищает экран перед выводом результатов.
- Подготовка массива - в цикле FOR с помощью функции LEN(s$) переменной i присваиваются значения от 1 до длины строки s$.
- Извлечение цифры - функция ASC(MID$(s$, i, 1)) возвращает числовое значение ASCII для каждой цифры в строке s$.
- Проверка на число - если полученное значение больше или равно 48 и меньше 58 (это диапазон цифр от 0 до 9), то выполняется следующий шаг.
- Увеличение счетчика - переменная n увеличивается на 1.
- Обновление массива - значение переменной n добавляется к элементу массива a(m-48).
- Проверка на ноль - если переменная n равна нулю, то выводится сообщение
NO
. - Вывод сообщения и чисел - если переменная n не равна нулю, то выводится сообщение
YES
, а затем в цикле FOR, начиная с i=9 и до 0 по шагу -1, выводятся числа от 9 до 0 с помощью функции LTRIM$(STR$(i)) (это функция, которая возвращает строку, состоящую из указанного количества пробелов в начале).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д