
C/C++
Задача паскаль: упорядочить массивы
Помогите пожалуйста

Если сортировка пузырьком подойдёт, тогда можно так:
var i, j, k, l, m: integer;
a: array [1..10] of integer;
oddind, evenind: array of integer;
procedure print();
begin
for i := 1 to 10 do write(a[i], ' ');
writeln()
end;
begin
k := 0;
l := 0;
randomize();
for i := 1 to 10 do a[i] := random(31);
print();
for i := 1 to 10 do
if odd(a[i]) then
begin
setlength(oddind, k + 1);
oddind[k] := i;
k := k + 1
end
else
begin
setlength(evenind, l + 1);
evenind[l] := i;
l := l + 1
end;
if k > 1 then
begin
for i := 1 to k - 1 do
for j := k - 1 downto i do
if a[oddind[j - 1]] < a[oddind[j]] then
begin
m := a[oddind[j - 1]];
a[oddind[j - 1]] := a[oddind[j]];
a[oddind[j]] := m
end
end;
if l > 1 then
begin
for i := 1 to l - 1 do
for j := l - 1 downto i do
if a[evenind[j - 1]] > a[evenind[j]]
then
begin
m := a[evenind[j - 1]];
a[evenind[j - 1]] := a[evenind[j]];
a[evenind[j]] := m
end
end;
print()
end.
Тут сначала генерируется рандомный массив и выводится на экран. Потом генерируются массивы индексов нечётных и чётных элементов. В двух последних циклах идёт необходимая сортировка, после чего преобразованный массив снова выводится на экран.
var i, j, k, l, m: integer;
a: array [1..10] of integer;
oddind, evenind: array of integer;
procedure print();
begin
for i := 1 to 10 do write(a[i], ' ');
writeln()
end;
begin
k := 0;
l := 0;
randomize();
for i := 1 to 10 do a[i] := random(31);
print();
for i := 1 to 10 do
if odd(a[i]) then
begin
setlength(oddind, k + 1);
oddind[k] := i;
k := k + 1
end
else
begin
setlength(evenind, l + 1);
evenind[l] := i;
l := l + 1
end;
if k > 1 then
begin
for i := 1 to k - 1 do
for j := k - 1 downto i do
if a[oddind[j - 1]] < a[oddind[j]] then
begin
m := a[oddind[j - 1]];
a[oddind[j - 1]] := a[oddind[j]];
a[oddind[j]] := m
end
end;
if l > 1 then
begin
for i := 1 to l - 1 do
for j := l - 1 downto i do
if a[evenind[j - 1]] > a[evenind[j]]
then
begin
m := a[evenind[j - 1]];
a[evenind[j - 1]] := a[evenind[j]];
a[evenind[j]] := m
end
end;
print()
end.
Тут сначала генерируется рандомный массив и выводится на экран. Потом генерируются массивы индексов нечётных и чётных элементов. В двух последних циклах идёт необходимая сортировка, после чего преобразованный массив снова выводится на экран.
Айнабек Серикович
выдает ошибку с циклом for
Похожие вопросы
- Задача по программированию. Массивы.
- Для всех задач сформировать одномерный массив N случайных чисел из интервала (-10; 10).
- Задача на одномерные массивы С++
- Помогите решить задачу с двумерным массивом на C++
- Leetcode. 2221. Треугольная сумма массива. Казалось бы, при чём здесь Паскаль?
- Упорядочить элементы массива по возрастанию на языке Си
- С++. Упорядочить строки массива A в порядке убывания сумм цифр первого элемента каждой строки.
- Найти произведение элементов массива а, состоящего из 25 целых чисел, кратных 2 на Паскаль
- Нужно решить задачу с массивами на C++
- Задача на c++ на массивах