回 帖 发 新 帖 刷新版面

主题:帮我看一下这冒泡法为什么不能排序?

{p22} 
program p4o3; 
const 
 maxn=10; 
 type 
 data=array[1..maxn] of integer; 
var 
a:data; 
i,j,t,m:integer; 
begin 
 for i:=1 to maxn do read(a[i]); 
 for i:=1 to maxn do write(a[i]:3); 
 writeln; 
 for i:=1 to maxn-1 do 
   for j:=1 to maxn-i do 
     if a[j+1]<a[j] then 
     begin 
      t:=a[j];a[j]:=a[j+1];a[j]:=t; 
end ; 
for i:=1 to maxn do write(a[i]:5); 
read(m); 
writeln; 
end. 
帮我看一下这冒泡法为什么不能排序?  
我用WATCHES看到数组a不能更改数据 
为什么呢?  
 
 

回复列表 (共3个回复)

沙发

t:=a[j];a[j]:=a[j+1];a[j]:=t;

上边这一句不对哦!
应写成
t:=a[j];a[j]:=a[j+1];a[j+1]:=t;

板凳

对阿 a[j]:=t; 写错了
下次自己要好好检查一下 这么明显的错误

3 楼


我想请问你几大了..犯这种低级错误

我来回复

您尚未登录,请登录后再回复。点此登录或注册