关于小甲鱼数组第一课(即:015课)的问题
在本次课里小甲鱼老师给做了个小程序(即:显示10个随机数,输出最大数及下标),源码如下:procedure TForm1.Button1Click(Sender: TObject);
var
ran_num:array of integer;
i:integer;
max,max_i:integer;
begin
edit1.text:='';
edit2.text:='';
edit3.text:='';
for i:=1 to 10 do
begin
ran_num:=10+random(90);
edit1.Text:=edit1.Text + inttostr((ran_num)) + ',';
end;
edit1.text:=copy(edit1.Text,1,length(edit1.text)-1);
max:=ran_num;
max_i:=1;
for i:=2 to 10 do
begin
if (max<ran_num) then
begin
max:=ran_num;
max_i:=i;
end;
end;
edit2.Text:=inttostr(max);
edit3.Text:=inttostr(max_i);
end;
end.
以下是我的疑问:
1、我认为此程序中的变量 i ,就是数组的下标,最终把 i 的值赋给了max_i ,因此感觉没有必要重新定义个max_i 变量。可是如果我不定义max_i ,直接用 i 的话 ,程序运行后,显示的下标值紧显示一个数字:11.并不随着随机数的改变而改变。这是为什么了???求解....
2、max_i:=1; 感觉没什么用啊,为什么要赋值个1给下标变量那? 我直接把此语句删除后,经试验程序正常运行。因此我认为此语句多余。我的想法对吗??为什么了??求解....
先谢谢各位了~~~~~我还很菜哦...
本帖最后由 流星一瞬间 于 2012-2-28 13:09 编辑
谁来给恢复一下啊等好几天了
流星一瞬间 发表于 2012-2-28 12:50 static/image/common/back.gif
谁来给恢复一下啊等好几天了
你循环体内没有数组下标 sbwcwusi 发表于 2012-2-28 17:39 static/image/common/back.gif
你循环体内没有数组下标
详细点啊看不懂你说的什么 在判断下标的时候,i表示从2~10共9种情况来和被设置为默认最大的第一个2位随机数进行比较;
而max_i则表示9种情况比较完以后,最大的2位数是在第几种情况出现的;
我猜按照楼主的理解则是把 i 和 max_i 等同起来了。须知i总会跑到10才截止,但是max_i代表的下标不一定是第十个随机数,这个最大的随机数可能在第5位就出现了。
这是我的理解,或许有错误,但还算是种思路吧。敬请指正!{:1_1:} gglhy 发表于 2012-3-3 22:00 static/image/common/back.gif
在判断下标的时候,i表示从2~10共9种情况来和被设置为默认最大的第一个2位随机数进行比较;
而max_i则表示 ...
你说的我好像明白点了。呵呵我再考虑考虑.... {:10_279:} 学习学习
页:
[1]