Поменять местами наибольшую и наименьшую цифры в числе - Pascal

  1. В заданном целом положительном числе N поменять местами наибольшую и наименьшую цифры. Предусмотреть случай, когда таких цифр нет.


textual

Код к задаче: «Поменять местами наибольшую и наименьшую цифры в числе - Pascal»

var n,m,kmn,kmx:integer;
    k,mx,mn,i,imx,imn:byte;
begin
repeat
write('Введите число больше 9 n=');
readln(n);
until n>9;
mn:=9;
imn:=0;
mx:=0;
imx:=0;
k:=0;
m:=n;
while m>0 do
 begin
  k:=k+1;{считаем цифры}
  if m mod 10<mn then {если меньше}
   begin
    mn:=m mod 10;{это мин}
    imn:=k {его номер с конца}
   end;
  if m mod 10>mx then {то же с макс.}
   begin
    mx:=m mod 10;
    imx:=k
   end;
  m:=m div 10;
 end;
if mn=mx then
 begin
  writeln('Все цифры в числе одинаковы');
  exit;
 end;
kmn:=1;{узнаем разряд мин}
for i:=2 to imn do
kmn:=kmn*10;
kmx:=1;{то же макс}
for i:=2 to imx do
kmx:=kmx*10;
{получим новое число, вычтя старые цифры и прибавив новые}
m:=n-mx*kmx-mn*kmn+mx*kmn+mn*kmx;
write(m);
end.

СДЕЛАЙТЕ РЕПОСТ

7   голосов, оценка 4.000 из 5



Похожие ответы
  1. Дан двумерный целочисленный массив. Нужно поменять друг с другом выделенные красным цветом диагонали(над половиной главной диагонали и под половиной побочной).

  1. С горем пополам написал код для перестановки букв в введенном слове. Как сделать поиск полученных вариантов в словаре слов? Словарь русских слов в тхт формате. Например: ввожу слово beer Выдает варинты: beer bere bree eber ebre eebr eerb erbe ereb rbee rebe reeb. Нужно проверить есть ли какой нибудь вариант в словаре.

  1. Здраствуйте. Мне нужна помощь при написании программы для изменения местами двух строк в матрице. Вот коментарий: Получаем матрицу А рандомно, выводим ее и потом, вводим значения номеров двух строк l,k(которые необходимо поменят местами) и вывести вторую матрицу B (в которой k,l поменялись местами) / Вот мой код

  1. В каждом столбце матрицы поменять местами последний и максимальный элемент.

  1. В каждой из матриц: А(3 строки, 4 столбца) и В(5 строк, 5 столбцов) поменять местами две строки: в матрице А - строки 2 и 3, в матрице В - строки 2 и 4. Для обмена в матрице строк с произвольными номерами использовать процедуру.

  1. . Игрок А объявляет двузначное число от 01 до 99. Игрок В меняет местами его цифры и прибавляет полученное число к сумме его цифр. Полученный результат он объявляет игроку А. Игрок А проделывает с этим числом ту же процедуру, и так они продолжают поступать поочередно, объявляя числа. От суммы чисел берется остаток от деления на 100, поэтому объявляются лишь двузначные числа. Какие числа может объявить игрок А на начальном шаге, чтобы игрок В в некоторый момент объявил число 00.

  1. Всем привет. Помогите пожалуйста с задачей. В данной вещественной матрице размером nxm поменяйте местами строку, содержащую элемент с наибольшим значением, со строкой, содержащей элемент с наименьшим значением. Предполагается, что эти элементы единственные. Преподаватель сказал делать по примеру, но лично я ничего не понимаю в этом.Добавлено через 38 секунд

  1. Помогите написать программу , в матрице найти два столбца равными суммами сумами и поменять их элементы местами.