24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1146  |  回复: 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分钟内回复过其他散金贴,则可能无法领取此贴金币
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 电子信息270求调剂 +12 terminal469 2026-04-07 12/600 2026-04-11 11:19 by zhq0425
[考研] 调剂 +5 青灯不负 2026-04-09 5/250 2026-04-11 09:59 by zhq0425
[考研] 22408 352分求调剂0854类 +4 努力的夏末 2026-04-09 4/200 2026-04-11 09:57 by zhq0425
[考研] 282,求调剂 +12 jggshjkkm 2026-04-09 14/700 2026-04-11 09:39 by 猪会飞
[考研] 求调剂 +10 翩翩一书生 2026-04-09 10/500 2026-04-11 09:32 by 益达核桃露
[考研] 284求调剂 +12 archer.. 2026-04-10 13/650 2026-04-11 08:44 by zhq0425
[考研] 一志愿211,化学学硕,310分,本科重点双非,求调剂 +17 努力奋斗112 2026-04-06 20/1000 2026-04-11 00:31 by wangjihu
[考研] 材料与化工调剂 +12 否极泰来2026 2026-04-10 13/650 2026-04-11 00:28 by wangjihu
[考研] 309求调剂 +14 wdhw 2026-04-10 15/750 2026-04-10 21:06 by zhouxiaoyu
[硕博家园] 0856材料化工求调剂,一志愿211,初试成绩349 +5 江淮北月 2026-04-05 5/250 2026-04-10 16:26 by 高维春
[考研] 青岛科技大学材料学院,环境学院调剂补录4月10日以前都可以 +3 1青科大。 2026-04-09 5/250 2026-04-10 09:58 by 翩翩一书生
[考研] 初试分332,一志愿报考西北工业大学, +11 故人?? 2026-04-09 11/550 2026-04-09 21:54 by JineShine
[考研] 285求调剂 +20 哦呦呼o 2026-04-04 20/1000 2026-04-08 22:23 by yutian743
[考研] 材料考研求调剂总分280 +30 mkjlz1 2026-04-06 35/1750 2026-04-08 21:25 by cyh—315
[考研] 270求调剂 +3 031127 2026-04-06 4/200 2026-04-08 21:00 by 逆水乘风
[考研] 307求调剂 +3 Youth@@ 2026-04-07 3/150 2026-04-07 22:00 by hemengdong
[考研] 071000生物学,一志愿深圳大学296分,求调剂 +12 TIckLw 2026-04-06 13/650 2026-04-07 20:34 by lijunpoly
[考研] 292求调剂 +4 lilllllxccc 2026-04-05 5/250 2026-04-07 09:29 by 纺大杨老师
[考研] 机械专硕274求调剂,不挑专业学校 +6 泛泛2333 2026-04-05 8/400 2026-04-06 18:06 by 泛泛2333
[考研] 化学357分,考研调剂 +11 .Starry. 2026-04-04 12/600 2026-04-06 06:28 by houyaoxu
信息提示
请填处理意见