В одномерном массиве поменять местами максимальный и минимальный элементы — Pascal(Паскаль)

uses crt;
const max=100;
var b:array[1..max] of integer;
    n,i,mx,mn,imx,imn,x:integer;
begin
clrscr;
randomize;
repeat
write('Размер массива n=');
readln(n);
until n in [1..max];
writeln('Исходный массив:');
for i:=1 to n do
 begin
  b[i]:=random(10)+10;
  write(b[i],' ');
 end;
writeln;
writeln;
mx:=b[1];mn:=b[1];imx:=1;imn:=1;
for i:=1 to n do
 begin
  if b[i]>mx then
   begin
    mx:=b[i];
    imx:=i;
   end;
  if b[i]<mn then
   begin
    mn:=b[i];
    imn:=i;
   end;
 end;
writeln('Максимальный=',mx,' индекс=',imx);
writeln('Минимальный=',mn,' индекс=',imn);
writeln;
x:=b[imn];
b[imn]:=b[imx];
b[imx]:=x;
writeln('Массив после обмена элементов:');
for i:=1 to n do
write(b[i],' ');
readln
end.

Вариант 2

program hhh;
Uses crt;
 Var x:array [1..100] of integer;
     i,j,j1,min,n,max,q:integer;
begin
clrscr;
Writeln (' Vvedite kol - vo elementov ');
Readln (n);
{Вводим массив}
 for i:=1 to n do begin
                  write ('Vvedite ',i, ' element ');
                  Readln (x[i]);
                  end;
{Выводим его на экран}
Writeln (' polycheny chisla ');
for i:=1 to n do write (x[i]:3);
writeln;
{Ищем максимальный элемент}
Max:=x[1];
for i:=1 to n do
  if x[i]>=max then begin
                    max:=x[i];
                    {Запоминаем его номер}
                    j:=i;
                    end;
{Выводим максимальный элемент}
Writeln (' Maxim element = ',max);
Writeln;
{Ищем минимальный элемент}
min:=x[1];
for i:=1 to n do
  if x[i]<=min then begin
                    min:=x[i];
                    {Находим и запоминаем его номер}
                    j1:=i;
                    end;
 
Writeln;
{Выводим минимальный элемент}
writeln (' Minim element = ',min);
{Меняем элементы местами}
                 q:=x[j1];
                 x[j1]:=x[j];
                 x[j]:=q;
{Выводим полученный массив}
For i:=1 to n do write (x[i]:3);
Readln
end.

Следующий вариант

uses crt;

var
  i, size, max, min, num, num1: integer;
  a: array [1 .. 10000] of integer;

begin
  clrscr;
  writeln('Bведите размер массива');
  readln(size);
  FOR i := 1 TO size do
  begin
    clrscr;
    writeln('Введите элементы массива');
    readln(a[i]);
  end;
  max := a[1];
  min := a[1];
  clrscr;
  writeln('Введенный массив');
  FOR i := 1 TO size do
  begin
    writeln(a[i]);
    IF a[i] > max THEN
    begin
      num := i;
      max := a[i];
    end;
  end;
  FOR i := 1 TO size do
  begin
    IF a[i] < min THEN
    begin
      num1 := i;
      min := a[i];
    end;
  end;
  a[num1 + 1] := max;
  a[num] := min;
  writeln('Массив, где max и min поменяли местами');
  FOR i := 1 TO size do
  begin
    writeln(a[i]);
  end;

end.

Leave a Comment

+ 66 = 71