Так я пробовал, ничего не получается, где-то у меня ошибка есть:(
да не может быть! В чем ошибка? данные одного типа? Тебе скопировать из одного массива в другой или их местами поменять? И код бы уже давал, телепаты в отпуск ушли - лето.
Program array14; Uses crt; Var a,b,c:array[1..10] of integer; I,n:integer; Begin Clrscr; Write('ввести кол-во элементов в массиве = '); Read(n); Writeln; For i:1 to n do A[i]:=random(100); For i:=1 to n do Write(a[i],' '); writeln; Begin If a[1] mod 2 = 0 then For i:=1 to n do B[1]:=a[1] else c[1]:=a[1]; If a[2] mod 2 = 0 then For i:=1 to n do B[2]:=a[2] else c[2]:=a[2]; If a[3] mod 2 = 0 then For i:=1 to n do B[3]:=a[3] else c[3]:=a[3]; If a[4] mod 2 = 0 then For i:=1 to n do B[4]:=a[4] else c[4]:=a[4]; If a[5] mod 2 = 0 then For i:=1 to n do B[5]:=a[5] else c[5]:=a[5]; If a[6] mod 2 = 0 then For i:=1 to n do B[6]:=a[6] else c[6]:=a[6]; End Write('четные числа'); Writeln; Write(b[i],' '); Writeln; Write('нечетные числа'); Writeln; Write(c[i],' '); Writeln; End
Никак не пойму как все четные елементы разместить в массиве b, а нечетные в с, их еще и отсортировать надо будет по возрастанию, но примеры сортировки элементов массива я нашел. Где ошибка не знаю:(
у тебя адовый замес какой то для простоты раздели код на части (процедуры), если непонятно как это реализовать в одной процедуре
и несколько непонятно задание - отсортировать по возрастанию как именно? в одном массиве сначала идут по возрастанию четные, а потом по возрастанию нечетные?
1) заполняем массив случайными элементами 2) перебираем элементы массива: -если четный, то записываем его в новый массив для четных элементов -так же для нечетных учти, что в данном случае индексы элементов исходного и новых массивов совпадать не будут (у тебя эта ошибка как раз) 3) сортируем каждый массив по возрастанию 4) выводим результат 5) ??? 6) PROFIT!!! ------------- добавлено в 17.54: код я тебе не пишу, иначе поучительного эффекта не будет)
leader6670, Замес реально адовый)) ну как-то так, накидал на скорую руку.
var a, b, c: array [1..10] of integer; i, j, k, n: byte;
begin writeln('Введите кол-во элементов в массиве '); readln(n); for i:=1 to n do begin a[i]:=random(100); writeln(a[i], ' '); end; j:=1; k:=1; for i:=1 to n do begin if (a[i] mod 2=0) then begin b[j]:=a[i]; inc(j); end else begin c[k]:=a[i]; inc(k); end; end; writeln('Четные числа'); for i:=1 to n do write(b[i], ' '); writeln('Нечетные числа'); for i:=1 to n do write(c[i], ' '); end.
Кстати, если элементов будет не больше 10 - еще ладно, а если больше? Может тебе лучше динамический массив заюзать? В турбопаскале их, по моему нет, в делфи есть - юзай.
Цитата: w_asd
код я тебе не пишу, иначе поучительного эффекта не будет)
Я таки дам код, пусть уж в пример посмотрит. Если захочет понять - поймет, не захочет - его дело. Сортировку сам сделает)
скажите пожалуйста, почему паскаль абц не воспринимает процедуру swap? я попытался применить пузырьковую сортировку, но он мне фигу показывает, говорит что неизвестный идентификатор!
вот код: program array14; uses crt; var a,b,c: array [1..10] of integer; i,j,k,f,n: byte; begin clrscr; write('Введите кол-во элементов в массиве = '); readln(n); writeln; for i:=1 to n do begin a[i]:=random(100); write(a[i],' '); write; end; j:=1; k:=1; for i:=1 to n do begin if (a[i] mod 2=0) then begin b[j]:=a[i]; inc(j); end else begin c[k]:=a[i]; inc(k); end; begin for f:=1 to N-1 do for i:=1 to N-f do if b[i] > b[i+1] then swap(b[i],b[i+1]) end writeln; writeln('Четные числа'); for i:=1 to n do write(b[i],' '); writeln; writeln('Нечетные числа'); for i:=1 to n do write(c[i],' '); writeln; end.