Показать сообщение отдельно
Старый 13.09.2009, 19:26   #14 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Цитата:
Упорядочить числа по убыванию суммы цифр
Допустим, что дан целочисленный массив.
Код:
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.
Проверил, все работает
__________________
Убить всех человеков!

Последний раз редактировалось AlexZir; 13.09.2009 в 19:54 Причина: дополнил
AlexZir вне форума  
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070