24小时热门版块排行榜    

查看: 1079  |  回复: 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分钟内回复过其他散金贴,则可能无法领取此贴金币
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 307求调剂 +3 wyyyqx 2026-03-17 3/150 2026-03-21 03:20 by JourneyLucky
[考研] 083200学硕321分一志愿暨南大学求调剂 +3 innocenceF 2026-03-17 3/150 2026-03-21 02:35 by JourneyLucky
[考研] 一志愿西南交大,求调剂 +5 材化逐梦人 2026-03-18 5/250 2026-03-21 00:26 by JourneyLucky
[考研] 311求调剂 +5 冬十三 2026-03-18 5/250 2026-03-21 00:16 by JourneyLucky
[考研] 材料专硕英一数二306 +7 z1z2z3879 2026-03-18 7/350 2026-03-20 23:48 by JourneyLucky
[考研] 317求调剂 +5 申子申申 2026-03-19 9/450 2026-03-20 22:26 by JourneyLucky
[考研] 085600材料与化工 +8 安全上岸! 2026-03-16 8/400 2026-03-20 22:13 by luoyongfeng
[考研] 290求调剂 +7 ^O^乜 2026-03-19 7/350 2026-03-20 21:43 by JourneyLucky
[考研] A区线材料学调剂 +5 周周无极 2026-03-20 5/250 2026-03-20 21:33 by laoshidan
[考研] 材料学硕297已过四六级求调剂推荐 +11 adaie 2026-03-19 11/550 2026-03-20 21:30 by laoshidan
[考研] 289求调剂 +6 怀瑾握瑜l 2026-03-20 6/300 2026-03-20 20:30 by 学员8dgXkO
[考研] 材料学硕318求调剂 +5 February_Feb 2026-03-19 5/250 2026-03-19 23:51 by 23Postgrad
[考研] 328求调剂,英语六级551,有科研经历 +4 生物工程调剂 2026-03-16 12/600 2026-03-19 11:10 by 生物工程调剂
[考研] 085601专硕,总分342求调剂,地区不限 +5 share_joy 2026-03-16 5/250 2026-03-18 14:48 by haxia
[考研] 0854,计算机类招收调剂 +3 胡辣汤放糖 2026-03-15 6/300 2026-03-18 12:09 by 上岸上岸……..
[考研] 308求调剂 +4 是Lupa啊 2026-03-16 4/200 2026-03-17 17:12 by ruiyingmiao
[考研] 283求调剂 +3 听风就是雨; 2026-03-16 3/150 2026-03-17 07:41 by 热情沙漠
[考研] 327求调剂 +6 拾光任染 2026-03-15 11/550 2026-03-15 22:47 by 拾光任染
[考研] 26考研一志愿中国石油大学(华东)305分求调剂 +3 嘉年新程 2026-03-15 3/150 2026-03-15 13:58 by 哈哈哈哈嘿嘿嘿
[考研] 288求调剂 +4 奇点0314 2026-03-14 4/200 2026-03-14 23:04 by JourneyLucky
信息提示
请填处理意见