一道Pascal小问题,跪求答案!紧急!!!!!!!!!!!!!

来源:百度知道 编辑:UC知道 时间:2024/05/07 03:06:50
下面是一道Pascal小程序
type TT=array[0..20]of integer;
prodecure func(var ary:TT;n:integer);
var i,j,x:integer;
begin
i:=0;j:=n-1;
while i<j do begin
while (i<j) and (ary>0) do inc(i);
while (i<j) and (ary[j]<0) do dec(j);
if i<j then begin x:=ary;
ary:=ary[j];
ary[j]:=x;
inc(i);
dec(j);
end;
end;
end;
var
a:TT;
i,m:integer;
begin
m:=10;
for i:=0 to m-1 do
read(a);
func(a,m);
for i:=1 to m-1 do
write(a,' ');liyilong.net
writeln;
end.
请问这道程序中的type TT=array[0..20]of integer;
是枚举还是子界(还是其他什么意思),再看程序第7行中的and (ary>0)
既然程序中已将ary命名为TT,而TT又似乎是数组,那么ary中就有许多数
但为什么这里可以将ary一个整体与0比较,怎么比?
以上是一些小疑问,希望大家能帮我解答。
O(∩_∩)O谢谢

type的功能就是自定义类型,type TT = array [0..20] of integer; 其实就是定义了一个叫做TT的包含21个整形元素的数组,这样写可以节省代码长度,定义一个变量也许看不出方便在哪儿,但相同类型的变量多了,比方说写10次 array [0..20] of integer; 就比写十次TT要繁杂的多。(另外,把数组作为函数形参的时候也必须要用这种写法的)
至于直接拿数组名称来和0比较,其实比较的就是arr[0]和0,因为直接引用数组名称其实就是在引用数组的第一个元素。

愿我的见解对您有所帮助。

type TT=array[0..20]of integer; //是数组类,该数组类可以重新定义数组
比如:
var aTT:TT;//定义一个数组,与var aTT:array[0..20] of integer 一样。
另外:ary就是ary[0]

TT,为定义的一种类型,就象“integer”一样。

type TT=array[0..20]of integer;
+
a:TT;
=
a:array[0..20]of integer;

程序本来就有问题