
Дан одномерный числовой массив, состоящий из 20 элементов. Создайте новый массив, состоящий из 10
элементов и заполните его произведениями пар элементов из первого массива, т.е B[1]=A[1]*A[2], B[2]=A[3]*A[4] и т.д. Сделайте сортировку полученного массива по убыванию. Вот что написала, при заполнении массива b и дальнейшей его сортировки по убыванию выводятся одинаковые числа const n=20; k=10; var a: array [1..n] of integer; b: array [1..k] of integer; i,j,g,x: integer; begin for j:=1 to n do begin a[j]:=random(101); end; for i:=1 to k do begin for j:=1 to n-1 do begin b[i]:=a[j]*a[j+1]; end; end; for i:=1 to k-1 do for g:=i+1 to k-i do if b[i] begin x:=b[i]; b[i]:=b[g+1]; b[g+1]:=x; end; for i := 1 to k do writeln(b[i]:2); end.

Ответы на вопрос

const n=20; k=10;
var
a: array [1..n] of integer;
b: array [1..k] of integer;
i,j,g,x: integer;
begin
randomize;
for i:=1 to n do
a[i]:=random(101);
for i:=1 to k do
begin
for j:=1 to n-1 do
b[i]:=a[j]*a[j+1];
end;
for i:=1 to k do
for g:=1 to k-1 do
if b[i] < b[i+1] then begin
x:=b[i];
b[i]:=b[g+1];
b[g+1]:=x;
end;
for i:=1 to n do
writeln(b[i]);
end.



Ваш код содержит несколько ошибок. Давайте исправим их и приведем правильный код на языке Pascal:
pascalprogram MultiplyAndSort; const n = 20; k = 10; var a: array [1..n] of integer; b: array [1..k] of integer; i, j, g, x: integer; begin // Заполняем массив a случайными числами от 0 до 100 for j := 1 to n do begin a[j] := random(101); end; // Заполняем массив b произведениями пар элементов из массива a for i := 1 to k do begin b[i] := a[2 * i - 1] * a[2 * i]; end; // Сортируем массив b по убыванию for i := 1 to k - 1 do begin for g := i + 1 to k do begin if b[i] < b[g] then begin x := b[i]; b[i] := b[g]; b[g] := x; end; end; end; // Выводим отсортированный массив b for i := 1 to k do begin writeln(b[i]:2); end; end.
Исправленные ошибки и изменения:
Внутри цикла для заполнения массива
b
, мы используем элементыa[2 * i - 1]
иa[2 * i]
, чтобы взять пару элементов изa
.Исправлено условие сортировки, чтобы сортировка работала правильно.
Теперь ваша программа должна корректно выполнять задачу и выводить отсортированный массив b
с произведениями пар элементов из a
.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili