Заданный одномерный массив отсортировать по возрастанию цифры десятков каждого элемента. Сортировка прямой выбор — Pascal(Паскаль)

uses crt;
const nmax=100;
var a:array[1..nmax] of integer;
    n,i,j,imax:byte;
    x:integer;
begin
clrscr;
randomize;
repeat
write('Размер массива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Массив:');
for i:=1 to n do
 begin
  a[i]:=random(1000);
  write(a[i]:4);
 end;
writeln;
writeln;
for i:=1 to n-1 do
  begin
    imax:=i;
    for j:=i+1 to n do
    if (a[j] div 10 mod 10)<(a[imax] div 10 mod 10) then imax:=j;
    x:=a[i];
    a[i]:=a[imax];
    a[imax]:=x;
  end;
writeln('Сортировка по цифре десятков:');
for i:=1 to n do
write(a[i]:4);
writeln;
writeln;
for i:=2 to n do
if a[i]*a[i-1]<0 then
 begin
  a[i]:=0;
  a[i-1]:=0;
 end;
readln
end.

Leave a Comment

48 + = 58