pascal数组问题
比如一个程序输入n个数,第一行是n,之后每行一个数,输出n行,为这些数从小到大排列,每个数都是1000000的正数vara:array[0..1000000]oflong...
比如一个程序输入n个数,第一行是n,之后每行一个数,输出n行,为这些数从小到大排列,每个数都是1000000的正数
var
a:array[0..1000000]of longint;
i;j;n;m:longint;
begin
readln(n);
for i:=1 to n do
begin
readln(m);
a[m]:=a[m]+1
end;
for i:0 to 1000000 do
for j: := 1 to a[i] do
writeln[i];
end.
这个程序数组没有初始化,那么默认是零吗?如果不是那是什么,好像数组就直接用了(我知道布尔是false)如果默认为0.那么如果是0那么一个数组什么都没有,不就是 for j:= 1 to 0这个不是错的吗。谢谢了 展开
var
a:array[0..1000000]of longint;
i;j;n;m:longint;
begin
readln(n);
for i:=1 to n do
begin
readln(m);
a[m]:=a[m]+1
end;
for i:0 to 1000000 do
for j: := 1 to a[i] do
writeln[i];
end.
这个程序数组没有初始化,那么默认是零吗?如果不是那是什么,好像数组就直接用了(我知道布尔是false)如果默认为0.那么如果是0那么一个数组什么都没有,不就是 for j:= 1 to 0这个不是错的吗。谢谢了 展开
3个回答
2012-10-12 · 知道合伙人软件行家
关注
展开全部
你的代码写的有点乱,一些代码阅读搞不懂是什么意思。而且在语法上存在错误。
1. 如果“ 输入n个数,第一行是n ”,那么就不需要定义那么大的数组,而是定义一个动态数组。
2. 没看你的代码里有“为这些数从小到大排列”的排序算法。
-------------------------
1 、这个程序数组没有初始化,那么默认是零吗?如果不是那是什么,好像数组就直接用了(我知道布尔是false)
通常,如果是全局的数组在定义后,会自动进行初始化。因此,如果是longint的数据类型,就会初始化为 0。
2、 如果默认为0.那么如果是0那么一个数组什么都没有,
0并不是说数组什么都没有,而是说数组的成员,比如 a[0] := 0; 就是等于数字0,而不是什么都没有。
3、for j:= 1 to 0这个不是错的吗
这个不知道你要达到什么目的,数组的成员与数组成员的总数不是一码事。所以你的代码比较令人费解。
1. 如果“ 输入n个数,第一行是n ”,那么就不需要定义那么大的数组,而是定义一个动态数组。
2. 没看你的代码里有“为这些数从小到大排列”的排序算法。
-------------------------
1 、这个程序数组没有初始化,那么默认是零吗?如果不是那是什么,好像数组就直接用了(我知道布尔是false)
通常,如果是全局的数组在定义后,会自动进行初始化。因此,如果是longint的数据类型,就会初始化为 0。
2、 如果默认为0.那么如果是0那么一个数组什么都没有,
0并不是说数组什么都没有,而是说数组的成员,比如 a[0] := 0; 就是等于数字0,而不是什么都没有。
3、for j:= 1 to 0这个不是错的吗
这个不知道你要达到什么目的,数组的成员与数组成员的总数不是一码事。所以你的代码比较令人费解。
展开全部
我来讲解一下:
Pascal在windows的环境下都是默认为0的;
你所说的for j:=1 to 0 do 不是错的,他根本不会运行,就是什么都不做
ps:
回复四楼:只是桶排,你是初学者吗?
Pascal在windows的环境下都是默认为0的;
你所说的for j:=1 to 0 do 不是错的,他根本不会运行,就是什么都不做
ps:
回复四楼:只是桶排,你是初学者吗?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for j:=1 to 0 do
上述这个命令不会执行, 从1到0 判断,1已经大于0了
所以j一定会加1,然后再执行。
上述这个命令不会执行, 从1到0 判断,1已经大于0了
所以j一定会加1,然后再执行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询