profile
Опубликовано 6 лет назад по предмету Информатика от фывафцафца

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

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

    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.

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