Неправильный вывод алгоритма пузырьковой сортировки в Паскале

Недавно я пытался создать алгоритм пузырьковой сортировки на языке Pascal, однако после запуска программы на выходе оказались только 0 и 1. Интересно, что я сделал не так?

program BubbleSort;

const n = 9;
var
    arr : array [0..n] of integer;
    num, a, b, i, j, temp : integer;
begin
    temp := 0;
    for a := 0 to n do
    begin
        writeln('Please enter the ', a, '-th element in the array:');
        readln(arr[a]);
    end;
    for i := 0 to (n - 1) do
    begin
        for j := 0 to (n - i - 1) do
        begin
            if (arr[j] > arr[j + 1]) then
            begin
                arr[j] := temp;
                arr[j] := arr[j + 1];
                arr[j + 1] := temp;
            end;
        end;
    end;
    writeln('The sorted array is as follows:');
    for b := 0 to n do
    begin
        write(arr[b], ' ');
    end;
end.

Поскольку я знаком с C# и Java, я изо всех сил старался объявить, что массив начинается с индекса 0, и это может быть причиной проблемы. Не имею представления.

temp присваивается только один раз со значением 0. И arr[j] := temp; напрасно, потому что сразу после него вы присваиваете arr[j] новое значение, переопределяя 0. По сути, вы устанавливаете temp без причины на 0. Присвоение значений работает справа налево: variableToAssignValueTo := theNewValue. Кто бы ни проголосовал за этот вопрос, ему не хватает основ программирования/Pascal. Сравните с wiki.freepascal.org/Bubble_sort и wiki.freepascal.org/Basic_Pascal_Tutorial/Chapter_1/…
AmigoJack 02.04.2023 22:31
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
2
1
60
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны написать

temp := arr[j];

вместо

arr[j] := temp;

Другие вопросы по теме