Заполните массив из 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-i 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.
_______
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-i 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.
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Игорь 14 лет назад был на 8 лет моложе, чем его
Математика.
Два тела массами m1 и m2 находящие на расстоянии R друг
Физика.
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
Облако тегов