Вопрос задан 28.06.2023 в 03:37. Предмет Информатика. Спрашивает Товаревич Ваня.

Дан одномерный числовой массив, состоящий из 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.
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Филатова Валерия.

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.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Ваш код содержит несколько ошибок. Давайте исправим их и приведем правильный код на языке Pascal:

pascal
program 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.

Исправленные ошибки и изменения:

  1. Внутри цикла для заполнения массива b, мы используем элементы a[2 * i - 1] и a[2 * i], чтобы взять пару элементов из a.

  2. Исправлено условие сортировки, чтобы сортировка работала правильно.

Теперь ваша программа должна корректно выполнять задачу и выводить отсортированный массив b с произведениями пар элементов из a.

0 0

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос