鱼C论坛

 找回密码
 立即注册
查看: 2691|回复: 5

为什么函数在传递参数的时候,数值总是不对?

[复制链接]
发表于 2013-1-29 23:07:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
代码如下,在一个过程里面得到了一组数据,用一个数值保存的,然后调用两个过程把这个数值作为参数,但是在调用的过程里面得到的数组中的数值不对,不知怎么搞,小弟初学,大侠路过指点一二,谢谢了。程序是想把EDIT1中输入的用空格隔开的数字,在EDIT2中排列好,待用。(小甲鱼视频冒泡排序的部分)

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
var
  str,tmp: string;
  i,t: Integer;
  zhengli: Array of Integer;
  n: Integer;

begin
  str:=Trim(edt1.Text);
  SetLength(zhengli,Length(str));
  t:=0;
  i:=0;
  while (i<=Length(str)) do
  begin
    while ((str[i]<>#32 ) and (str[i]<>#0)) do
    begin
      tmp:= tmp+str;
      inc(i);
    end;
    if (tmp<>'') then
    begin
      zhengli[t]:= StrToInt(tmp);
      inc(t);
      tmp:='';
    end;
    inc(i);
  end;
// for n:=0 to (t-1) do
    //edt2.Text:= edt2.Text + IntToStr(zhengli[n]) + ' ';   //在这里显示出来的数值就完全正确
  paixu(zhengli);  //传递这个数组,调用这个过程后得到的数值就变了
end;

procedure TForm1.paixu(shuzu: array of Integer);
var
  n: Integer;

begin   //到这里后传递过的数组里面多了组0,不知是从哪里来的?
  edt2.Text:='';
  for n:=0 to High(shuzu) do
    edt2.Text:= edt2.Text + IntToStr(shuzu[n]) + ' ';    //显示出来的数值 多了很多组0
end;
end.



这个程序编译后杀毒软件也报有病毒,是啥原因啊?
工程下载
学习例子.rar (6.81 KB, 下载次数: 6)
[/i][/i]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-1-30 07:54:00 | 显示全部楼层
SetLength(zhengli,Length(str)); 这句你再看下。例:3 2 1 通过这句就定义了5个数组,加上了中间的空格在内的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-1-30 07:57:54 | 显示全部楼层
{:2_27:}记得当时我做这题时,是在zhengli[t]:= StrToInt(tmp);之前加多句SetLength(zhengli,Length(zheng) + 1);
..
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2013-1-30 09:41:34 | 显示全部楼层
谢谢老大帮忙!在没有调用   paixu(zhengli)   这个过程前数组里面的数据是正确的,就是调用这个过程后,得到的数组里面的数据才改变的,是怎么回事啊 ?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2013-1-30 09:48:10 | 显示全部楼层
应该是数组长度设置的不对,
在zhengli[t]:= StrToInt(tmp);  之前加多句SetLength(zhengli,Length(zhengli) + 1);
就正常了。
我的杀毒软件是avast ,上面的工程编译后老是报有病毒,自动删除生成的exe文件,我要把杀毒软件关闭才行,如何可以解决这个问题啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-1-31 17:01:15 | 显示全部楼层
看贴不回贴 都什么习惯呀?

                               
登录/注册后可看大图























                               
登录/注册后可看大图

夏季穿什么防辐射服好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-7-7 20:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表