Заполните массив из 10 частей случайными числами в промежутке (0..99)И отсортировать

Заполните массив из 10 частей случайными числами в промежутке (0..99)
И отсортировать его по возрастанию суммы цифр (подсказка :их всего две )

Задать свой вопрос
1 ответ
Python
_______
def summ(m):
s = 0
while m gt; 0:
s += m % 10
m = m // 10
return s


from random import random

N = 10
a = [0] * N
for i in range(N):
a[i] = int(random() * 40) + 10
print('%4d' % a[i], end='')
print()

for i in range(N - 1): количество переборов 9
for j in range(N - i - 1): при первом переборе i=0
if summ(a[j]) gt; summ(a[j + 1]):
a[j], a[j + 1] = a[j + 1], a[j]

for i in range(N):
print('%4d' % a[i], end='')
print()

for i in range(N):
print('%4d' % summ(a[i]), end='')
print()

pascal
______
const
    N = 10;
var
    arr: array[1..N] of integer;
    i, j: byte;
    a: integer;
function sum (n: integer): byte;
    begin
        sum := 0;
        while n gt; 0 do begin
            sum := sum + n mod 10;
            n := n div 10;
        end;
    end;
begin
    randomize;
    for i := 1 to N do begin
        arr[i] := random(20)+10;
        write (arr[i]:3);
    end;
    writeln;
      
    for i := 1 to N-1 do // количество проходов по массиву
        for j := 1 to N-do // количество сопоставлений в каждом проходе
            if sum(arr[j]) gt; sum(arr[j+1]) then begin
                a := arr[j];
                arr[j] := arr[j+1];
                arr[j+1] := a;
            end;
 
    for i := 1 to N do
        write(arr[i]:3);
    writeln;
    for i := 1 to N do
        write(sum(arr[i]):3);
    writeln;
end.


Анатолий Торосенко
на паскале sum := sum + n mod 10; не работает строка, дает ошибку -Program3.pas(10) : Нет перегруженной подпрограммы с такими типами характеристик
Таня Стебина
while n>0 do begind:= d + n mod 10;n:= n div 10;end;sum:=d;d:=0;end;
Rita Ivajkina
заменил sum на d, а после цикла sum:=d; - прекрасноработант
Серж Глянько
Вот все решение Вашей задачки на PascalABC.NET
Максимка Шиллингов
// PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018begin var a:=ArrRandom(10,0,99); a.Println; a:=a.OrderBy(t->t div 10 + t mod 10).ThenBy(t->t).ToArray; a.Printlnend.
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт