Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Из массива JJ(100) в массив NN(100) перенести числа(элементы массива): сначала нечетные, а затем четные.

Pathfinder-F Знаток (385), закрыт 15 лет назад
Вывести массив NN на печать по 10 элементов в строке.Подскажите как примерно решить задачку, решаем в Delphi заранее спасибо...
Лучший ответ
Gennady Гений (60239) 15 лет назад
Доброго времени суток.

Не совсем понятно, что подразумевается под "сначала нечетные, а затем четные"? Элементы массива четные и нечетные или их индексы?

Если элементы, то

j := 0;
for i:=1 to 100 do
if jj[ i ] mod 2 = 1 then begin
Inc(j);
nn[j] := jj[ i ];
end;
for i:=1 to 100 do
if jj[ i ] mod 2 = 0 then begin
Inc(j);
nn[j] := jj[ i ];
end;

Есть и другое решение. Сначала отсортировать исходный массив так, чтобы в нем стояли сначала нечетные, а затем четные и после этого переписать массив jj в nn. Примерно так

k:=1;
for i:=1 to n do
if jj[ i ] mod 2 = 1 then begin
B := jj[ j ];
for m:=i downto k do jj[m] := jj[m-1];
jj[k] := B;
Inc(k);
end;

for i:=1 to n do nn[ i ] := jj[ i ];

Для случая индексов массива подумайте сами.

Удачи!
Остальные ответы
Fawkes Nord Ученик (143) 15 лет назад
Паскаль не помню, но выглядеть будет примерно так:

j := 1;
for(i := 1; i < 50; i : = i+1)
{

NN(j) = JJ(j); //пишем нечетные элементы массива

j := (i*2)+1; //всегда будет нечетное число
}

для четного все тоже самое, только j := i*2; ну и начинается с 0.
Удачи.
Баранов Константин Просветленный (24467) 15 лет назад
;задаем массив чисел
dim jj(101)
dim nn(101)

;вводим по порядку начиная с 1 нечетные числа в разные ячейки массива НН
$temp = 1
for $x = 1 to 100
if $jj($x)/2<> int ($jj($x)/2) then nn($temp)=$jj($x)
$temp=$temp+1
next

;продолжаем ввод четных чисел в разные ячейки массива НН
for $x = 1 to 100
if $jj($x)/2=int ($jj($x)/2) then nn($temp)=$jj($x)
$temp=$temp+1
next

Язык программирования другой, но смысл, думаю ясен.
Похожие вопросы