关于Pascal程序中的冒泡程序

来源:百度知道 编辑:UC知道 时间:2024/06/23 22:13:43
题目是给出50个数从大到小排列
我的想法:设一个变量i,再用一个布尔量s=0或1代替true和false
框图我画得出,
谁能用语句写出来?(If、Do Loop、For语句)或者写个Pascal程序。
这个框图是我好不容易画的,看一下可不可以· ·····这是数学课本上的一道题目,我用了这种方法,老师叫我编成程序在电脑上试一下·

const
N=50;

var
a:array[1..N] of longint;
temp,i,j:integer;
begin
for i:=1 to N do read(a[i]);
writeln;
for i:=N-1 downto 1 do
for j:=1 to i do
if a[j]<a[j+1] then
begin
temp:=a[j];
a[j]:=a[j+1];
a[j+1]:=temp
end;
for i:=1 to N do write(a,' ');
writeln;
readln;
end.

框.....好象不是冒泡吧......不过,作为后来人,我强烈建议你不要去深研冒泡,不知道都可以,最多的是选择排序.....
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]<a[j] then {a[i] a[i] 互换}
给分谢谢!

program maopao;
type
shuzu=array [1..50] of integer;
var
i,j,h:integer;
a:shuzu;
begin
for i:=1 to 50 do
read(a[i]);
readln;
for i:=1 to 49 do
for j:=i+1 to 50 do
if a[j-1]<a[j] then
begin
h:=a[j-1];
a[j-1]:=a[j];
a[j]:=h;
end;
for i:=1 to 50 do