• Предмет: Информатика
  • Автор: фывафцафца
  • Вопрос задан 9 лет назад

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

Ответы

Ответ дал: BlackW1nd
0
Интересная задачка, заковыристая...

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]>max then
      begin
       max:=s[i];
       q:=i;
      end;
    if s[i]<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.

Сработает для чисел любой значности.
Ответ дал: BlackW1nd
0
Мы проходимся по нашей строке s, обрабатывая каждый символ в ней. i - это номер символа (к примеру, в строке s='2h74' s[3]='7'). length(s) - это количество символов в строке s. Цикл for берет каждый сивмол, начиная со 2-го номера, и заканчивая последним. Со второго номера мы начинаем потому, что первый мы уже обработали за циклом:
max:=s[1];
min:=s[1];
p:=1; q:=1;
Ответ дал: фывафцафца
0
спасибо большое ты мне жизнь спас
Вас заинтересует