Поменять местами наибольшее и малое 3хзначное число х(Pascal)Типо 157=751

Поменять местами наибольшее и малое 3хзначное число х(Pascal)Типо 157=751

Задать свой вопрос
1 ответ
Интересная задача, замысловатая...

Var x,i,c,q,p:integer; s:string; max,min,k:char;
Begin
 readln(x);
 str(x,s);
 max:=s[1];
 min:=s[1];
 p:=1; q:=1;
 for i:=2 to length(s) do
   begin
    if s[i]gt;max then
      begin
       max:=s[i];
       q:=i;
      end;
    if s[i]lt;min then
      begin
       min:=s[i];
       p:=i;
      end;
   end;
 k:=s[p];
 s[p]:=s[q];
 s[q]:=k;
 val(s,x,c);
 writeln(x);
End.

Сработает для чисел любой значности.
Максимка Булько
не работает выкидывает заключительнее число
Vasilij Neruchev
Str(x,s) - функция конвертирует числовое значение x в строковую переменную s. Val(s,x,c) - функция конвертирует строку s в числовое представление, записывает его в x и показывает количество ошибок в c (если таких нет, то c=0). Если будут спрашивать, скажи, что в учебнике каком-нибудь отыскал, либо на веб-сайте любом.
Тимур
не работает
Денис Манаенков
На каком компиляторе запускаешь? Free Pascal?
Polina Chikarova
Pascal ABC
Владимир Салушкин
Я дописал одну строчку, пробуй сейчас.
Павел Ламов
что такое for i:=2 to length(s) do
Вячеслав Романовский
Мы проходимся по нашей строке s, обрабатывая каждый знак в ней. i - это номер знака (к образцу, в строке s='2h74' s[3]='7'). length(s) - это количество знаков в строке s. Цикл for берет каждый сивмол, начиная со 2-го номера, и заканчивая последним. Со второго номера мы начинаем поэтому, что 1-ый мы теснее обработали за циклом: max:=s[1]; min:=s[1]; p:=1; q:=1;
Иван Вейц
спасибо огромное ты мне жизнь выручил
Ljubov Kurm
Обращайся =)
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт