Помощь - Поиск - Пользователи - Календарь
Полная версия: Немогу найти ошибку
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
SkIv
Ошибка заключается в том что при сравнении первого и второго элементов, если первый меньше второго, то алгоритм не срабатывает. Вот код. Сортирую методом простой вставки.
Код
procedure vstavka(c:mas);
var k,j,t: integer;
begin
  for i:= 2 to n do
   begin
     k:=1; t:=c[i]; j:=i-1;
     while j>0 do
       begin
         if c[j]<=c[i] then
          begin
            k:=j;
            j:=0;
          end else
           j:=j-1;
        end;
        j:=i;
         while j>k+1 do
          begin
           c[j]:=c[j-1];
           j:=j-1;
          end;
          c[k+1]:=t;
  end;
writeln('vstavka');
vivod(c);
end;
volvo
Оно вообще никогда не будет работать... Вернее, будет, но ты этого не увидишь, потому, что сортироваться будет локальная копия массива... Надо использовать Var-параметр:
procedure vstavka(VAR c: mas);
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.