24小时热门版块排行榜    

查看: 1086  |  回复: 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的回帖

snoopyzhao

至尊木虫 (职业作家)

初始化?
2楼2010-04-16 17:45:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

panpan429

金虫 (正式写手)

不太明白,给谁初始化?
3楼2010-04-16 17:49:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

panpan429

金虫 (正式写手)

jjdg:请别这样灌水哦 2010-04-17 00:43
4楼2010-04-16 19:02:37
已阅   回复此楼   关注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

金虫 (正式写手)

程序中没有关于产生种子的语句的,
那么程序中这一句:HRand(0.01);(产生区间为【-1,1】之间的随机数,)有什么作用
6楼2010-04-16 22:46:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

panpan429

金虫 (正式写手)

这一句可以省略吗?因为下一句x[1] = HRand(rand_factor)*0.55*_hdia;
也用到HRand,不是完全满足产生随机数赋给x[1],那要上边那句有什么作用啊?
7楼2010-04-16 22:49:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhaoxiaoqi

木虫 (著名写手)

★ ★ ★
panpan429(金币+1):谢谢参与
wangen994(金币+2):感谢参与,活动期间额外奖励 2010-04-18 09:38
看上去是没有任何意思的。
而且程序本身对全局变量没有赋初值,这样很容易出错。
用VC6
#include "stdafx.h"
#include "stdio.h"


int main(int argc, char* argv[])
{
        int text;
    printf("number:%d\n",text);
        return 0;
}
输出 number: -858993460
8楼2010-04-18 02:36:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhaoxiaoqi

木虫 (著名写手)


wangen994(金币+1):感谢参与,活动期间额外奖励 2010-04-18 09:38
搞错了,对全局变量不少编译器自动赋初值0。
9楼2010-04-18 02:39:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xxzj_009

至尊木虫 (著名写手)

★ ★ ★
panpan429(金币+1):谢谢参与
wangen994(金币+2):活动期间额外奖励 2010-04-21 12:28
引用回帖:
Originally posted by yalefield at 2010-04-16 22:29:55:
这是随机数产生算法
首先,要建立一个种子
然后,在产生随机数。

同意,你改0.01试试,看产生的随机数有没不同
10楼2010-04-19 20:27:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 panpan429 的主题更新
提示: 如果您在30分钟内回复过其他散金贴,则可能无法领取此贴金币
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 266求调剂 +3 哇呼哼呼哼 2026-03-20 3/150 2026-03-21 16:46 by barlinike
[考研] 【考研调剂】化学专业 281分,一志愿四川大学,诚心求调剂 +10 吃吃吃才有意义 2026-03-19 10/500 2026-03-21 16:43 by macy2011
[考研] 初试 317 +4 半拉月丙 2026-03-20 4/200 2026-03-21 16:41 by macy2011
[考研] 一志愿重庆大学085700资源与环境总分308求调剂 +7 墨墨漠 2026-03-20 7/350 2026-03-21 16:36 by barlinike
[考研] 299求调剂 +4 某某某某位 2026-03-21 4/200 2026-03-21 16:30 by barlinike
[考研] 08工科 320总分 求调剂 +6 梨花珞晚风 2026-03-17 6/300 2026-03-21 03:40 by JourneyLucky
[考研] 一志愿天津大学化学工艺专业(081702)315分求调剂 +12 yangfz 2026-03-17 12/600 2026-03-21 03:30 by JourneyLucky
[考研] 332求调剂 +4 ydfyh 2026-03-17 4/200 2026-03-21 02:20 by JourneyLucky
[考研] 328求调剂,英语六级551,有科研经历 +4 生物工程调剂 2026-03-17 8/400 2026-03-21 02:12 by JourneyLucky
[考研] 304求调剂 +7 司空. 2026-03-18 7/350 2026-03-20 23:08 by JourneyLucky
[考研] 一志愿 南京航空航天大学大学 ,080500材料科学与工程学硕 +5 @taotao 2026-03-20 5/250 2026-03-20 20:16 by JourneyLucky
[考研] 求调剂 +3 eation27 2026-03-20 3/150 2026-03-20 19:32 by JourneyLucky
[考研] 0856调剂,是学校就去 +8 sllhht 2026-03-19 9/450 2026-03-20 14:25 by 无懈可击111
[考研] 298-一志愿中国农业大学-求调剂 +9 手机用户 2026-03-17 9/450 2026-03-20 14:24 by 无懈可击111
[考博] 招收博士1-2人 +3 QGZDSYS 2026-03-18 3/150 2026-03-20 11:58 by 呱呱呱呱叫
[考研] 求调剂 +3 暗涌afhb 2026-03-16 3/150 2026-03-20 00:28 by 河南大学校友
[考研] 一志愿福大288有机化学,求调剂 +3 小木虫200408204 2026-03-18 3/150 2026-03-19 13:31 by houyaoxu
[考研] 301求调剂 +4 A_JiXing 2026-03-16 4/200 2026-03-17 17:32 by ruiyingmiao
[考研] 070305求调剂 +3 mlpqaz03 2026-03-14 4/200 2026-03-15 11:04 by peike
[考研] 288求调剂 +4 奇点0314 2026-03-14 4/200 2026-03-14 23:04 by JourneyLucky
信息提示
请填处理意见