我的冒泡排序演算法可以正常作業,但我想對其進行設定,以便在最終輸出的程序中列印每一行(19 行)。我幾乎嘗試了所有方法,但無法正確列印:
program Bubble_Sort;
const N = 20;
var
d : array[1..N] of integer;
var
i,j,x : integer;
begin
randomize;
for i := 1 to N do d[i] := random(100);
writeln('Before sorting:'); writeln;
for i := 1 to N do write(d[i], ' ');
writeln;
for j := 1 to N - 1 do
for i := 1 to N - 1 do
write(d[i], ' ');
if d[i] > d[i 1] then
begin
x := d[i]; d[i] := d[i 1]; d[i 1] := x;
end;
writeln('After sorting:'); writeln;
for i := 1 to N do write(d[i], ' ');
writeln;
end.
uj5u.com熱心網友回復:
代碼中心的外回圈,for j ...回圈為每次冒泡迭代運行。這就是您想要輸出排序狀態的地方。因為在該for j ...回圈中有多個陳述句,所以還必須添加一begin .. end對:
for j := 1 to N - 1 do
begin
//one round of sorting
//display result so far
end;
排序是可以的,除非您添加了write(d[i], ' ');大概是為了輸出一次迭代的排序結果,否則您將執行順序更改為完全錯誤。write(d[i], ' ');從現在的位置洗掉。
要在每次迭代后顯示排序結果,請添加一個新for k ...回圈和一個writeln;
for k := 1 to N do
write(d[k], ' ');
writeln;
最終排序和進度顯示的結構應如下所示:
for j := 1 to N - 1 do
begin
for i := 1 to N - 1 do
// one round of sorting
for k := 1 to N - 1 do
// output result of one sorting round
end;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/397542.html
