Заполните массив случайными числами в интервале [100..999] и переставьте их по возрастанию суммы цифр.

Ответы

Ответ дал: Merovingian
0
const dlin = 100;
var b:array[1..dlin,1..2] of integer;
      i,j,x:integer;
begin
writeln('Исходный массив:');
for i:=1 to dlin do
 begin
  b[i,1]:=random(800)+100;
  write(b[i,1],' ');
  b[i,2]:=b[i,1] mod 10 + b[i,1] div 100 + b[i,1] div 10 mod 10;
 end;
writeln;

for i:=1 to dlin-1 do
  for j:=dlin-1 downto i do
     if b[j,2]>b[j+1,2] then
     begin
      x:=b[j,2]; b[j,2]:=b[j+1,2]; b[j+1,2]:=x;
      x:=b[j,1]; b[j,1]:=b[j+1,1]; b[j+1,1]:=x;
     end;

writeln('Отсортированный массив:');
for i:=1 to dlin do
   write(b[i,1],' ');

end.
Вас заинтересует