回 帖 发 新 帖 刷新版面

主题:为什么我用随机数rand()每次都是41阿?

rt

回复列表 (共8个回复)

沙发

隨機種子
randomize();

板凳

int(rand()*i)1~i

3 楼

随机函数是否设置了默认值?

4 楼

怎么样设置默认值啊?我在for 里用random()也老是只返回同样一个值。不知道是怎么回事?
for(i=1;i<=j;i++)
       {
          randomize();
          nun=random(total);
          snun=IntToStr(nun);
          str2="select * from 雇员 where 序号 = '"+snun+"'";
          ADOQuery1->Close();
          ADOQuery1->SQL->Clear();
          ADOQuery1->SQL->Add(str2);
          ADOQuery1->Open();
          name=ADOQuery1->FieldByName("名字")->AsString;
          zw=ADOQuery1->FieldByName("职务")->AsString;
          zc=ADOQuery1->FieldByName("尊称")->AsString;
          dz=ADOQuery1->FieldByName("地址")->AsString;
          sr=ADOQuery1->FieldByName("出生日期")->AsString;
          StringGrid1->Cells[0][i]=name;
          StringGrid1->Cells[1][i]=zw;
          StringGrid1->Cells[2][i]=zc;
          StringGrid1->Cells[3][i]=dz;
          StringGrid1->Cells[4][i]=sr;
          nun=0;
       }

程序进行时几行都是同一个记录里的值。请高手指教。

5 楼

将randomize()放到需要随机种子的函数的开端是个很好的做法,不要把它放在循环体里,random()利用的是当前时间和调用randomize()时的时间差。

6 楼

好象要添加一个时间函数吧 你从书上查查看

7 楼

randomize(0);
除了给它初值外,还有把它放在循环前,一切都问题了

8 楼

你好.我是全职网赚工作者.
如果你有时间有电脑.会打字.
想在网络上创业.请联系我..
项目绝对真实.详情QQ空间资料
加盟请联系 QQ909065437

我来回复

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