Pascal中冒泡排序算法输出错误



最近我一直在尝试用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 := arr[j];

不是

arr[j] := temp;

最新更新