24小时热门版块排行榜    

查看: 964  |  回复: 13
当前主题已经存档。
【有奖交流】积极回复本帖子,参与交流,就有机会分得作者 panpan429 的 9 个金币 ,回帖就立即获得 1 个金币,每人有 1 次机会
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

panpan429

金虫 (正式写手)

[交流] 【求助】C语言中这句话什么意思啊 已有8人参与

从书中找到的一个程序
其中main主函数前定义了全局变量
int rand_factor, randit, nreps;
main函数中有一函数调用
if (ifill==1)
{
    if (idiam==1 || idiam==2)
       {
          if (ibc==2||ibc==3)
             RandomFill(0, hht, hdia, hod, hha);
         if (ibc==4)
             RandomFill_Pharma(0, hht, hdia, hod, hha);
        } // close if idiam == 1 or 2
} // close if ifill=1
其中函数RandomFill是这样定义的
void RandomFill(double y_origin, double _hht, double _hdia, double _hod, double _hha)
{
        double _hhar, _tanhhar, _sinhhar;
         _hhar = _hha * Pi / 180;
         _sinhhar = sin(_hhar);
         _tanhhar = tan(_hhar);
        cout.setf(ios::showpoint);
        cout <<"\n starting Random Fill( y_orign, _hht, _hdia, _hod, _hha         = "<"< //place initial particle
    do
    {
         HRand(0.01);
         x[1] = HRand(rand_factor)*0.55*_hdia;
         HRand(0.01);
         y[1] = HRand(rand_factor)*2.0*_hht + y_origin;
         if (idim == 3 && ibc==2)
          { z[1] = HRand(rand_factor)*1.1*z_width; // - 1.0*z_width;
          }
        if (idim == 3 && ibc==3)
          { z[1] = HRand(rand_factor)*0.55*_hdia;
             xz_sq = sqrt( sq(x[1]) + sq(z[1]) );
          }
   // cout << "x,y,z = "<    }
    while ( fabs(x[1]) > 0.5*(_hdia-diam[1]) || y[1]>1.50*_hht+y_origin || y[1]<0.5*diam[1]+y_origin
|| (ibc==2 && y[1] < 1/_tanhhar * 1.0*( fabs(x[1]) -0.5*_hod) + 0.5*diam[1]/_sinhhar + y_origin) || (ibc==3 &&
y[1] < 1/_tanhhar * 1.0*(xz_sq - 0.5*_hod) + 0.5*diam[1]/_sinhhar + y_origin) || (ibc==2 &&
fabs(z[1])>0.5*z_width ) || (ibc==3 && xz_sq > 0.5*_hdia-0.5*diam[1]) );
。。。。。
。。。。。
}
HRand又是这样定义的
double HRand(double n) // returns random numbers on [-1,1]
{
    return double( 2.0 * (1.0 * rand() / RAND_MAX) - 1.0 );
}
想问的问题是:函数RandomFill中有一句HRand(0.01);这一行即不是赋值语句,后边也没有用到,我所见过的跟这句类似的也就一句 i++;这个还好理解,但上边的是什么意思?
不知道是错误?但该程序有好多其他地方也是这样用的,迷惑。。。
先谢谢大家

[ Last edited by panpan429 on 2010-4-16 at 17:35 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yalefield

金虫 (文坛精英)

老汉一枚

★ ★ ★
panpan429(金币+1):谢谢参与
jjdg(金币+1):感谢参与 2010-04-17 00:44
wangen994(金币+1):感谢参与,活动期间额外奖励 2010-04-18 09:38
这是随机数产生算法
首先,要建立一个种子
然后,在产生随机数。
5楼2010-04-16 22:29:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 panpan429 的主题更新
提示: 如果您在30分钟内回复过其他散金贴,则可能无法领取此贴金币
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见