Определить порядковый номер его максимальной и минимальной цифры - Pascal ABC
Формулировка задачи:
Дано натуральное число, в котором все цифры различны. Определить порядковый номер его максимальной и минимальной цифры, считая номера
1. От конца;
2. От начала числа.
Спасибо за ответ!
Решение задачи: «Определить порядковый номер его максимальной и минимальной цифры»
textual
Листинг программы
var n,n1,k,k1,c,mn,imn,mx,imx:integer; begin write('Введите натуральное число из разных цифр больше 9 n='); readln(n); //узнаем сколько цифр в числе n1:=n; k:=0; while n1>0 do begin n1:=n1 div 10; k:=k+1; end; mn:=9; mx:=0; k1:=0; while n>0 do begin c:=n mod 10; k1:=k1+1; if c<mn then begin mn:=c; imn:=k1; end; if c>mx then begin mx:=c; imx:=k1; end; n:=n div 10; end; writeln('Минимальная цифра=',mn,' ее номер справа=',imn,' слева=',k-imn+1); writeln('Максимальная цифра=',mx,' ее номер справа=',imx,' слева=',k-imx+1); end.
Объяснение кода листинга программы
- Создается переменная n, которая будет хранить введенное пользователем натуральное число.
- Вычисляется количество цифр в числе, которое будет храниться в переменной n1.
- Задаются начальные значения для переменной mn (9), mx (0) и k1 (0).
- Запускается цикл while, который будет выполняться до тех пор, пока n не станет равным нулю.
- Внутри цикла происходит деление n на 10, что позволяет получить последнюю цифру введенного числа. Полученная цифра сохраняется в переменной c.
- Задается значение k1 как сумму k и imn (индекс предыдущей цифры).
- Проверяется, является ли текущая цифра меньше mn. Если да, то обновляется значение mn и imn.
- Проверяется, является ли текущая цифра больше mx. Если да, то обновляется значение mx и imx.
- После завершения цикла n делится на 10, чтобы получить последнюю цифру.
- Выводится информация о минимальной цифре, ее номере слева и справа от нее.
- Выводится информация о максимальной цифре, ее номере слева и справа от нее.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д