• Пишет: Ошибка. Программа завершена из за переполнения стека. Паскаль. Помогите, пожалуйста.
    вот программа:
    program Alisa_5;
    const N=10;
    var i: integer;
    A: array [ 1 .. n] of integer;
    procedure Sort (first,last: integer);
    var x, y, m, c: integer;
    begin
    if first>=last then exit;
    m:=a[(first+last) div 2];
    x:=first;
    y:=last;
    repeat
    while A[x] while A[y]>m do y:=y-1;
    if X<=Y then
    begin
    c:=A[y];
    A[y]:=A[x];
    A[x]:= c;
    X:=X+1;
    Y:=Y-1;
    Sort( First, x);
    Sort (Last, y);
    end;
    until x>y
    end;
    begin
    writeln('Массив: ');
    For i:=1 to n do
    begin
    A[i]:= random(100);
    write( A[i], ' , ');
    end;
    sort (1,n);
    For i:= 1 to n do
    write( A[i], ' ; ')
    end.

Ответы 5

  • Спасибо!
    • Автор:

      jesse
    • 5 лет назад
    • 0
  • Не за что. И запомни - если ошибка переполнение стека, то где-то цикл не прекращается
    • Автор:

      hughtyler
    • 5 лет назад
    • 0
  • while A[x] // условие цикла всегда TRUE, вот и имеем бесконечный цикл. Ошибка переполнение стека - возникает далеко не только из-за вечного цикла, не стоит вводить в заблуждение.
    • Автор:

      seth1wmg
    • 5 лет назад
    • 0
  • Обычно из-за вечного цикла или очень долгого цикла (читать настолько долгого, что он вечный)
    • Автор:

      kamden
    • 5 лет назад
    • 0
  • while A[x] while A[y]>m do y:=y-1; - эта строка - у тебя тут идет пока какой-то элемент выполнять цикл пока. И видимо на нем цикл крутится и не заканчивается вот тебе и ошибка

  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years