Помощь - Поиск - Пользователи - Календарь
Полная версия: ошибка в дублировании элементов массива
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
лоен
собственно как исправить ошибку?
uses SysUtils;
const Nmax=10000;
function prime(n : LongInt): Boolean;
Var c : Boolean;
    i : LongInt;
Begin
    c:=True;
    For i:=2 to round(sqrt(n)) do
        If n mod i=0 then c:=False;
    Prime:=c;
End;
var
  n,k,i,s,b,j: integer;
  a: array[1 .. Nmax] of integer;
begin
    Writeln('Vvedite dliny posledovatelnosti(n<=10000)');
    Readln(n);
    Writeln('Vvedite posledovatelnost');
    for i := 1 to n do Readln(A[i]);
    i := 1;
    while i <= n do begin
      s := 0;
      b := A[i];
      while b > 0 do begin
        S := s + (b mod 10);
        b := b div 10;
      end;
      if (s mod 8) = 0 then begin
        n := n - 1;
        for j := i to n do a[j]:=a[j+1];
      end else inc(i);
    end;
    for i :=1 to n Do begin
        if Prime(a[i]) then
        begin
          for k:=n+1 downto i+1 do a[k]:=a[k-1];
          n:=n+1;
          i:=i+1;
        end;
        i:=i+1;
    end;
    for i :=1 to n Do Write(A[i],' ');
    Readln;
end.


Добавлено через 4 мин.
если она тут одна >_<
volvo
Собственно, почему в For-цикле изменяется управляющая переменная? Я же показывал тебе, что для изменения ее надо использовать While...
лоен
нда, снова на том же самом, извиняюсь)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.