Цитата:
Упорядочить числа по убыванию суммы цифр
|
Допустим, что дан целочисленный массив.
Код:
program calc;
uses crt;
var
a: array[1..10000] of integer;
exz: array[1..10000] of integer;
n, i, k, j, g: integer;
begin
clrscr;
writeln('Введите количество элементов массива');
readln(n);
writeln('Начинаем заполнение массива ',n,' значениями');
for i:=1 to n do {Цикл заполнения массива}
begin
writeln('Введите значение ',i,'-го элемента');
read(a[i]); end;
for i:=0 to n+1 do exz[i]:=0;
{начинаем анализ массива}
for i:=1 to n do
begin
k:=a[i];
while k > 0 do
begin
j:=k mod 10;
exz[i]:=exz[i]+j;
k:=k div 10;
end; end;
{Выводим оба массива рядом в столбик}
writeln("Число Сумма цифр');
for i:=1 to n do begin write(a[i]:6, exz[i]:6); writeln; end;
{обрабатываем массивы}
for g:=1 to n do begin
j:=0; k:=0;
for i:=2 to n do begin
if exz[i]<exz[i-1] then
begin
k:=exz[i-1];
j:=a[i-1];
exz[i-1]:=exz[i];
a[i-1]:=a[i];
exz[i]:=k;
a[i]:=j; end; end; end;
{Выводим получившиеся массивы рядом в столбик}
writeln("Число Сумма цифр');
for i:=1 to n do begin write(a[i]:6, exz[i]:6); writeln; end;
readln(n);
end.
Проверил, все работает